尝试将我的主/java类文件编译成.jar,然后生成.war
我有一个使用IntelliJ构建的spring应用程序(MVC)。 我正在使用Maven 我的pom.xml文件当前在运行时生成war文件:尝试将我的主/java类文件编译成.jar,然后生成.war,java,spring,maven,intellij-idea,Java,Spring,Maven,Intellij Idea,我有一个使用IntelliJ构建的spring应用程序(MVC)。 我正在使用Maven 我的pom.xml文件当前在运行时生成war文件: mvn clean install pom.xml: <packaging>war</packaging> 我希望所有这些类都位于com.myapp.jar文件中 同样在maven安装过程中,我希望它在创建.war文件时将com.myapp.jar添加到/lib路径,以便我可以部署到tomcat/jetty 如果有人能准确地概
mvn clean install
pom.xml:
<packaging>war</packaging>
我希望所有这些类都位于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>
org.apache.maven.plugins
maven编译器插件
2.3.2
${java版本}
${java版本}
org.apache.maven.plugins
maven战争插件
2.1.1
myapp
org.codehaus.mojo
TomcatMaven插件
1.1
org.mortbay.jetty
maven jetty插件
6.1.26
10
/
这不是很清楚,但是如果您想归档您的类并将这些类放在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>
org.apache.maven.plugins
maven战争插件
2.1.1
真的
您应该创建两个maven项目。第一个是jar,它只包含您想要在jar中使用的类,第二个是用于war的maven项目。在war项目中,jar项目应该作为依赖项添加
另外,如果您想安装war项目,同时生成jar文件(仅在一个命令行中),那么应该将war项目定义为父项目,将jar项目定义为模块。请参阅和标记..
和..
因此,父pom应该有一个模块标记,而模块pom应该有一个父标记。当您在父项目(war one)上运行mvn install时,maven将首先自动在模块上运行该命令。另请参阅此maven多项目。您需要使您的项目模块化,将您的src/main/java与pom捆绑在一起,并将其打包为jar,然后使用另一pom创建另一个web项目,并将此已创建的项目添加为模块。因此,您的家长pom应该有这样一个模块:
<modules>
<module>core</module>
</modules>
核心
此处解释:
我希望我的代码放在一个单独的.jar文件中,然后在.war文件中使用该.jar文件。这样,如果需要的话,我可以重用这个.jar文件。归档类创建一个编译过的类jar文件,并将jar复制到WEB-INF/lib目录。如果ArchiveClass未设置为true,则所有编译的类都将登录到WEB-INF/classes中。这就是您正在查看的内容,还是要创建一个包含源(.java)文件的jar文件?
<modules>
<module>core</module>
</modules>