回答
maven-war-plugin支持创建一个包含类的单独工件。
http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html
见 'attachClasses' 参数。无需添加jar插件或与包装混淆。只需将war插件添加到pluginManagement并将其打开即可。
但是,我担心这不是你想要的。要使用CXF Web服务,您需要一个客户端。要获得客户端,请按照CXF示例中的说明操作,以了解如何生成和使用客户端存根控件。你需要一个单独的Maven项目。
尝试添加该到编译部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>make-a-jar</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
看来我不得不改变相位包装。如果它被设置为编译,则在pom.xml上有错误。 – Stony
这有效,但是如何将maven-jar-plugin生成的* .jar包含在由maven-war-plugin构建的war包中? –
mvn package
除非你project's packaging是除了jar
东西。然后,您需要jar plugin的add an execution,如plugin's usage page中所述,并作为第一个答案显示。更好的是,如果它不是jar,请将它分成两个模块:一个是包含可重用代码的jar,另一个是使用它的东西。
这是通过属性实现它的一种方式。 默认情况下,它会生成一个war文件,当你想让jar刚设置属性。
mvn install -Dp.type=jar
的pom.xml
<properties>
<p.type>war</p.type>
</properties>
<packaging>${p.type}</packaging>
添加下列战争项目的pom.xml。
<attachClasses>true</attachClasses>
战争插件
<groupId>com.yourorg.foobar</groupId>
<artifactId>hello-world</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>hello</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
</plugins>
</build>
添加的配置以下到您想要导入战项目的罐子项目的pom.xml
<classifier>classes</classifier>
进行依赖进口
<dependency>
<groupId>com.yourorg.foobar</groupId>
<artifactId>hello-world</artifactId>
<version>1.0</version>
<classifier>classes</classifier>
</dependency>
这应该工作:
<!-- Maven JAR plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>jar-services-provided</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Install the jar locally -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<packaging>jar</packaging>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>
${project.build.directory}/${project.artifactId}-${project.version}.jar
</file>
</configuration>
</execution>
</executions>
</plugin>
摘自this blog。
实现这一目标的最佳方式是使用Maven Assembly插件通过这个,你还可以控制JAR的最终名称:
添加下面的插件在你的pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<finalName>${artifactId}-${version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
部件。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>model</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
</assembly>
你终于可以建立与下面的命令的项目:
MVN清洁套装组件:一个安装
- 1. 为什么maven-war-plugin会生成一个JAR而不是WAR?
- 2. 如何排除maven war插件生成的jar文件?
- 3. 我可以在maven中同时生成jar和一个项目的war吗?
- 4. 为maven生成一个jar
- 5. MAVEN构建不生成jar
- 6. 如何在项目中生成jar和war
- 7. 在maven生成的war中包含外部的eclipse项目作为jar
- 8. Eclipse + Maven - WAR中缺少JAR导出
- 9. 复制生成jar或war文件复制到目标目录
- 10. Maven会自动将jar文件打包成war文件吗?
- 11. 只上载gradle中的war/jar文件(限制zip/tar生成和上传)
- 12. 如何运行Maven生成JAR的CLI
- 13. 从maven生成groovydoc的jar文件
- 14. Maven生成jar依赖项然后战
- 15. Maven war build在生成的.war文件中放入一些旧版本的jar文件
- 16. Eclipse Build不生成WAR
- 17. 用Maven,Tomcat 7和Websocket构建一个可执行的War/Jar
- 18. 如何使用maven遮罩来构建jar和war
- 19. 生成.war文件
- 20. 将JAR Maven项目包含到WAR Maven项目中
- 21. Maven不会生成带有Maven jar插件的MANIFEST文件
- 22. 如何跳过由maven-jar-plugin和clasifier生成的jar中的版本
- 23. yuicompressor maven插件和maven-war-plugin
- 24. 如何使用Maven中的源代码生成WAR?
- 25. 如何从Maven生成的war中排除pom.xml?
- 26. 使用Maven从一个项目中生成多个War
- 27. 使用Maven配置文件生成自定义WAR档案
- 28. 从现有的maven项目生成war文件
- 29. 由maven war文件生成时遗漏了一些罐子
- 30. 更改maven生成的war文件名问题
这是不错的,但加上'类 '这些日子是不寻常的 –
aliopi