2013-08-19 60 views
0

我寫了一個pom.xml來編譯目錄「D:\ Windchill_Market \ ERP Connector \ SourceCode \ Build \ src1 \ src \ main \ java \ com \ sample」中的java文件。如何在maven中的目錄結構與sourceDirectory不相似的jar文件?

現在我必須將目錄「D:\ Windchill_Market \ ERP Connector \ SourceCode \ Build \ src1」中的所有文件打包成jar。

下面在我的pom.xml:

<sourceDirectory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\java</sourceDirectory> 
<plugins> 
    <plugin>      
     <groupId>org.apache.maven.plugins</groupId>    
     <artifactId>maven-compiler-plugin</artifactId>    
     <version>2.5.1</version>    

    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

我能夠生成類文件。但我無法從我的必需目錄中打印所有文件。只有來自sourceDirectory的文件被破壞。我嘗試在maven-source-plugin中使用include標籤。但它不工作。

請幫忙。

謝謝

回答

-1

感謝所有的答案。我能夠使用build-helper-maven-plugin解決這個問題。

0

Maven對源和其他文件(所謂的資源)使用不同的文件夾。從src\main\java它編譯所有.java文件並將生成的.class文件打包到jar中。據我所知,該目錄中的所有其他文件都被忽略。

現在,如果您還想要打包其他文件,請將它們替換爲src\main\resources

編輯

要手動指定資源目錄添加

<resources> 
    <resource> 
     <directory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\resource</directory> 
    </resource> 
</resources> 

<build>部分

+0

雅我試過。但是由於 D:\ Windchill_Market \ ERP Connector \ SourceCode \ Build \ src1 \ src \ main \ java是src \ main \ java,我無法將src \ main中的內容\資源。我指定sourceDirectory,直到src/main/java,因爲聲吶希望整個包結構生成已編譯類文件的結果 – galme

+0

@gouthami請參閱我的編輯 –

+0

永遠不要在中指定絕對路徑。其實,刪除,因爲src/main/java是默認的。 – rec

0

的Maven的源插件不正是它應該。它在src/main/java中加載源代碼。它也可能包括src/main/resources,不確定。

如果您管理某種方式使其從項目的根目錄開始存檔,那麼您會濫用它。對於Maven來說,正確使用JAR的內部結構必須反映正常的JAR - 所有包必須存在,只是裏面的文件是「.java」而不是「.class」。如果情況並非如此,Eclipse或其他工具將無法找到這些源文件。

如果你想創建你可能稱之爲你的項目的「源碼分發」,你應該看看Maven Assembly Plugin。它允許你以一種非常靈活的方式從你的項目中創建一個包。這需要更長時間的回答才能引導您完成整個過程。更好地閱讀插件上的文檔,並在遇到更具體的問題時再回來。有一個pre-defined configuration可能適合你的情況。

簡單地說,這樣的事情應該工作:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>src</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    </plugin> 
相關問題