2016-05-13 48 views
0

我正在編寫一個利用SikuliX的應用程序,並且在從我的代碼中生成一個jar時出現問題。在Maven中爲SikuliX打包圖像

我有用於存儲在src/main/resources我的代碼的圖像,然後我建立使用此代碼的jar我pom.xml

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.dustinroepsch.leadtimetool.Main</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

當我打開7-ZIP創建的JAR,我可以看到我的圖像被添加到jar的根目錄。我認爲這就是我想要的,但我不確定。

我通過

Screen s = new Screen(); 
ImagePath.add("src/main/resources"); 
s.hover("1462980188453.png"); 

引用我的我的代碼圖像當我通過Netbeans的推出我的代碼「播放」按鈕,它運行的偉大。

然而,當我運行命令行的依賴罐子,我得到的錯誤

FindFailed: Region: doFind: Image not loadable: 1462980188453.png 

的圖像被裝在罐子,罐子裏有它的側面sikuli依賴。是否有我添加的圖像路徑,這樣我的可執行jar將正確找到圖像?

謝謝!

回答

0

我想出了一個很好的解決方案。

Maven會自動將資源目錄中的所有內容打包到jar的根目錄中。

你應該做的是在資源目錄中創建一個名爲「圖像」(或任何其他)的文件夾,並將文件夾放在其中。

然後你可以使用ImagePath.add("com.yourcompany.yourpackage.AnyClass/images");

事情,然後將工作打算