2014-09-30 101 views
3

我有一個multimodule項目,並且試圖在SubProject2中生成一個組合文件,其中包含一些類以及一些在SubProject1中定義的DTO。但是,Proc.jar文件只包含Proc.class和com \ myproy \ spr \ dto * .class,而SubProject1的文件(com \ myproy \ dto * .class)不包含在內,因此無法提供使其工作的方法。Maven Assembly Plugin - 包含來自另一個模塊的類

項目的佈局:

Parent 
|-pom.xml 
| 
SubProject1 
|-pom.xml 
|-src\main\java\com\myproy\dto 
|-src\main\java\com\myproy\util 
| 
SubProject2 
|-pom.xml 
|-src\assembly\def.xml 
|-src\main\java\com\myproy\spr 
|-src\main\java\com\myproy\spr\dto 

def.xml:

<assembly 
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 
         http://maven.apache.org/xsd/assembly-1.1.0.xsd"> 
    <id>Proc</id> 
    <formats> 
     <format>jar</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
     <fileSet> 
      <directory>target/classes</directory> 
      <includes> 
       <include>com/myproy/spr/Proc.class</include> 
       <include>com/myproy/spr/dto/*.class</include> 
       <include>com/myproy/dto/*.class</include> 
      </includes> 
      <outputDirectory>/</outputDirectory> 
     </fileSet> 
    </fileSets> 
</assembly> 

SubProject2->的pom.xml

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
      <id>distro-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>src/assembly/def.xml</descriptor> 
       </descriptors> 
      </configuration> 
     </execution> 
    </executions> 
</plugin>   
+0

你解決了嗎?我有類似的問題 – Meta 2014-12-02 09:40:48

+0

娜,對不起,仍然在尋找一種方法來使它工作。 – codependent 2014-12-03 09:54:40

回答

0

爲什麼不添加該項目作爲JAR依賴?¿。

+0

我不能那樣做。關鍵是我正在生成一個包含要安裝在DB2中的DB2存儲過程的jar。如果我包含整個jar,那麼還應該添加許多其他依賴項。我想僅包含項目類的一小部分 – codependent 2014-09-30 09:44:39

1

如果我理解錯誤,請糾正我。您需要SubProject1中的某些特定功能。而且你只需要這個功能(不是更多),你不能把整個SubProject1作爲依賴項。因此,也許,如果我理解正確,可以在另一個項目(類似於Commons)中提取此功能,並將它作爲依賴項添加到SubProject1和SubProject2中。

+0

要清除它:SubProject1是一個Model項目,其中包含Web和服務模塊使用的DTO和枚舉類。我只想將這些DTO和枚舉中的一些放入組合文件中。原因主要是某些DTO包含對我不想/不能包含在組合文件中的庫的依賴關係。至於你的建議......我不認爲爲此創建另一個項目是一個好主意。我最終會得到ParentProject,WebProject,ServiceProject,ModelProject1,ModelProject2 ...我期望有一個乾淨的方式來直接使用Maven。不管怎麼說,還是要謝謝你。 – codependent 2014-09-30 10:37:40

相關問題