Maven 我如何在IntelliJ IDEA上制作JAR和WAR?
我想开发一个新的javaMaven 我如何在IntelliJ IDEA上制作JAR和WAR?,maven,amazon-web-services,intellij-idea,aws-lambda,Maven,Amazon Web Services,Intellij Idea,Aws Lambda,我想开发一个新的javawebservice,部署在AWS Lambda上,但我也希望能够轻松地测试它 我的想法是使用Jersey对我的webservice进行编码,并能够将其编译成war文件,因此我可以在本地对其进行测试,也能够将其编译成AWS的jar 我的第一个想法是在IntelliJ IDEA 2017.3 Ultimate上创建两个模块,一个用于war,另一个用于jar,都使用Maven,这两个模块共享Jersey REST资源(webservice类)的相同代码库。但不幸的是,我太新了
webservice
,部署在AWS Lambda上,但我也希望能够轻松地测试它
我的想法是使用Jersey
对我的webservice
进行编码,并能够将其编译成war
文件,因此我可以在本地对其进行测试,也能够将其编译成AWS的jar
我的第一个想法是在IntelliJ IDEA 2017.3 Ultimate
上创建两个模块,一个用于war
,另一个用于jar
,都使用Maven,这两个模块共享Jersey REST资源
(webservice
类)的相同代码库。但不幸的是,我太新了,不能IntelliJ IDEA
,我无法将其付诸实施
有没有办法做到这一点?您提供的解决方案是可行的,但IMO有点过于复杂。我为我的项目做了类似的事情:首先我对所有的源代码和测试做了一个测试,然后我将它切片到。不过,这并不是最干净的解决方案——您可能会将依赖类放置到不同的工件上,并在运行时导致类加载问题 在您的情况下,它更简单-如果我做对了,您只需要将相同的内容重新打包到另一个工件。在最简单的情况下,一个模块就足够了。您只需添加一个用于组装WAR存档的插件,如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>jarwar</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<goals>
<goal>war</goal>
</goals>
<configuration>
<classifier>web</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.example
贾瓦尔
1.0-快照
罐子
org.apache.maven.plugins
maven战争插件
2.1.1
战争
网状物
上面的示例将编译源代码,在打包阶段从中组装jar和war档案,并附加它们以供进一步安装和部署。这里的主要思想是在编译所有源代码时,在打包阶段执行maven-jar-plugin:jar
和maven-war-plugin:war
目标。第一个目标绑定在jar
defaultpackaging,第二个目标显式绑定
一个更重要的细节是分类器:应该在一个工件上指定它以将其标记为补充。否则,工件将无法正确安装到存储库。So-您需要Maven或IDEA方面的帮助吗?Maven on IDEA,所以我猜主要是Maven。。。我会努力的!好啊我将阅读有关工件和目标的资料,然后我将尝试一下,非常感谢!您能否详细说明一下“您有可能将依赖类放置到不同的工件上,并在运行时导致类加载问题”?好的,只有当您将编译的类拆分到不同的工件上时(就像我在项目中所做的那样),这种风险才是实际存在的。在这种情况下,您可能会将类及其导入的类拆分为不同的归档,如果出于某种原因,稍后在运行时类路径中,只有带有类的归档,但没有其导入,您将遇到类加载问题。不管怎样,在你的情况下,这没什么好担心的。正如我从你的问题中了解到的,你只是在重新包装相同的内容,而不是将其切分。我想是的。。。谢谢