如何从Web项目创建一个war和jar?
我有一个Maven网站项目,其包装为“战争”。 该包会生成确认为战争格式的战争文件。 但是,我喜欢将该项目打包为“jar”以及默认的“war”格式。 所以,我正在尝试使用“maven jar”插件来实现这一点。 我正在使用下面的jar插件配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>make-a-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
<includes>
<include>../../src/main/webapp/**</include>
<include>**/*</include>
</includes>
</configuration>
</plugin>
“package”命令生成一个jar文件,其中包含“resources”文件夹的类和内容,war文件生成适当的“war”文件。
但'src / main / webapp'的内容不包含在jar文件中。 如何使用jar插件在jar包中包含src / main / webapp的内容?
通常Maven战争:战争提供了2个重要的参数,如下所示: -
1个archiveClasses
是否为webapp中的类创建JAR文件。 使用此可选配置参数将使编译后的类存档到JAR文件中 ,然后将class目录从webapp中排除。 默认值是:false。 用户属性是 :archiveClasses。
2个attachClasses
是否应将类(即WEB-INF / classes目录的内容)作为附加工件附加到项目中。 默认情况下,额外工件的分类器是'classes'。 您可以使用<classesClassifier>someclassifier</classesClassifier>
参数更改它。
即使这是一个提供Maven War Plugin的功能,这不包括创建的jar文件的src/main/webapp
。 然后你可以考虑Maven Asssembly Plugin
Maven的Assembly Plugin主要用于允许用户将项目输出及其依赖项,模块,站点文档和其他文件集中到一个可分发的归档文件中。 目前它可以使用以下格式创建发行版:
通过使用程序集描述符,您可以过滤一些分发文件以及包含和排除工件等。 这意味着您可以使用任何必需的内容/资源创建自己的档案。
如果你想使用Maven Jar Plugin,就像你刚才提到的那样。 它还提供了以下内容: -
使用页面将为您提供更多信息。
我希望这可能会有所帮助。
Maven唯一干净利落的方法是将两个项目拆分成两个项目,一个用于构建jar,另一个用于构建战争(更简单的标准项目比一个非标准的项目更好,尤其是Maven)
现在, 如果您还想共享src / main / webapp中的文件,可以使用war叠加层(war作为依赖项),或者使用类似spring servletDispatcher及其mvc:resources标签的东西。
链接地址: http://www.djcxy.com/p/74655.html