我使用模型 - 视图 - 控制器模式开发webapp.该model软件包代表了应用程序的核心API,可以独立使用.在controller与view包使用的model包装制作web应用程序.
问题:
我希望能够构建仅model包的JAR 和三个包的WAR.我想将这三个包保存在同一个项目中.与独立JAR相比,webapp WAR将包括补充库.我怎么能用Maven实现这个目标?是否有一个解决方案使用两个单独的pom.xml文件?(因为据我所知,你不能packaging在pom.xml中选择两个选项)
(我已经看到了这个问题,但我真的希望我的三个软件包成为同一个项目的一部分,并且属于同一个目录.)
此外,我的项目使用经典的webapp结构(这里简化):
my-app
-- pom.xml
-- src
----- main/
-------- java/
----------- model/
----------- view/
----------- controller/
-------- webapp/
---------- WEB-INF/
-------------classes/
Run Code Online (Sandbox Code Playgroud)
我可以设法在经典target/目录中生成JAR,在经典目录中生成webapp src/main/webapp/吗?(并且,根据要求,包括不同的图书馆)
谢谢你的帮助.
有了它,您可以根据需要拥有尽可能多的不同程序集描述符,每个程序集都有自己的打包方案,文件集和依赖项.
以下是pom.xml的示例插件配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/model.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
以及模型 jar 的示例程序集描述符(src/main/assembly/model.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}/model</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)
Running mvn clean package assembly:single将生成项目pom.xml中的标准my-app.war文件和目标包中的my-app-model.jar.
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |