我有一个使用IntelliJ构建的spring应用程序(MVC)。 我正在使用Maven。
当我运行时,我的pom.xml文件当前生成一个war文件:
mvn clean install
的pom.xml:
<packaging>war</packaging>
现在我想尽可能避免创建两种不同的解决方案。
/ src / main / java中的所有代码都有一个包名:
com.myapp
我希望所有这些类都在com.myapp.jar文件中。
同样在maven安装过程中,我希望它在创建.war文件时将此com.myapp.jar添加到/ lib路径,以便我可以部署到tomcat / jetty。
有人可以准确地概述我必须做的事情,我很困惑如何同时做这两件事。
目前我的pom.xml的构建部分如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>myapp</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<contextPath>/</contextPath>
</configuration>
</plugin>
</plugins>
</build>
答案 0 :(得分:1)
它不是很清楚,但是如果你想归档你的类并将这些类放在WAR文件的lib目录中。如果您正在查看以下插件,请执行以下操作:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
答案 1 :(得分:0)
你应该创建两个maven项目。一,对于罐子里只有你想要的罐子和战争的第二个maven项目。在war项目中,jar项目应该作为依赖项添加。
此外,如果要安装war项目并同时生成该jar文件(只在一个命令行中),则应将war项目定义为父项目,将jar项目定义为模块。请参阅doc和标记<parent>...</parent>
和<modules>...</modules>
。
因此,父pom应该有一个模块标签,模块pom应该有一个父标签。当您在父项目(war one)上运行mvn install时,maven将自动首先运行该模块上的命令。另请参见此maven多项目doc。
答案 2 :(得分:0)
您的需求是使您的项目模块化,将您的src / main / java与pom捆绑并将其打包为jar,然后使用另一个pom创建另一个Web项目并将此已创建的项目添加为模块。所以,你的父pom应该有这样一个模块:
<modules>
<module>core</module>
</modules>
答案 3 :(得分:0)