0

在尝试创建 maven 构建时,我需要资源源 jar、javadoc jar 和编译类 jar,这可以通过现有插件轻松实现。

但是我确实有 XSD 的src/main/resources/xsd文件夹,我更喜欢在构建过程中在不同的 jar 中创建它,这可能吗?

我在这里先向您的帮助表示感谢

4

2 回答 2

0

好吧,MAVEN 本身不支持来自单个pom.xml. 但是您可以只用 a 创建另一个空项目pom来创建另一个 jar

codebase
    |- pom.xml
    |- src
    |- xsdJar
        |- pom.xml
    |- [other stuff]

现在,在xsdJar\pom.xml

<project>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <includes>
            <include>../src/main/resources/xsd/*</include>
          </includes>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

另外,在您的 main 中调用上述模块pom.xml

<modules>
  <module>xsdJar</module>
</modules>
于 2013-08-05T13:50:33.660 回答
0

您可以使用自定义插件或作为程序集向您的 maven 构建添加额外的人工制品。程序集允许您将任何资源组定义为新的工件。这个新的人工制品将成为您现有人工制品的“附件”,就像可以附加源 jar 一样。

创建程序集时,您需要定义一个描述符并将其放在类似的位置src/main/assembly/xsd.xml

描述符将类似于:

<assembly>
   <id>xsd</id>
   <formats>
      <format>zip</format>
   </formats>
   <fileSets>
      <fileSet>
           <directory>src/main/resources/xsd</directory>
           <includes>
               <include>*.xsd</include>
           </includes>
      </fileSet>
  </fileSets>
</assembly>

第二部分是程序集插件配置,如下所示:

  <build>   
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/xsd.xml</descriptor>
          </descriptors>           
        </configuration>
        <executions>
              <execution>
              <id>make-xsd-zip</id> <!-- this is used for inheritance merges -->
              <phase>package</phase> <!-- bind to the packaging phase -->
              <goals>
                <goal>single</goal>
              </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

此配置应为您提供一个名为:<artifactid>-<version>-<assemblyid>.zip

于 2013-08-05T15:22:52.570 回答