Maven源插件 - 如何仅为我想要包含的类生成源jar

时间:2014-04-11 21:14:39

标签: java maven pom.xml

目前,我正在处理的项目将Web服务的所有代码都集成在一起,并且正在创建war和jar文件。

Jar文件只包含其他项目共享的最少类 我目前无法将共享类拆分为单独的核心项目。 (虽然我更喜欢)

我试图只在源jar中放入必要的java文件:

Common_Model-1.1.2.jar  
Common_Model-1.1.2.jar-sources

我的POM中有这样的东西:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <executions>
      <execution>
        <goals>
          <goal>jar</goal>
        </goals>
        <configuration>
          <includes>
            <include>gov/app/api/common/models/**</include>
            <include>gov/app/api/intra/models/**</include>
            <include>gov/app/api/models/**</include>
          </includes>
          <finalName>Common_Model-1.1.2</finalName>
        </configuration>
      </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>jar</goal>
        </goals>
        <configuration>
          <includes>
            <include>gov/app/api/common/models/**</include>
            <include>gov/app/api/intra/models/**</include>
            <include>gov/app/api/models/**</include>
          </includes>
          <finalName>Common_Model-1.1.2</finalName>
        </configuration>
      </execution>
    </executions>
</plugin>

虽然这确实创建了源jar,但它忽略了includes配置并添加了整个项目中的所有.java文件。

我也尝试使用<excludes>,但这也被忽略了。

1 个答案:

答案 0 :(得分:0)

我在我的项目中试过这个:

<include>com/sandbox/**/Permutations*</include>

生成的Common_Model-1.1.2-sources.jar只有一个名为Permutations.java的文件当我试过

<include>com/sandbox/Permutations*</include>
<include>com/sandbox/Sandbox*</include>

jar只有那两个文件。所以你所拥有的应该是有用的。我怀疑你的模式过于宽泛。