我刚开始使用Maven 3参加IntelliJ中的Scala项目。
我在this指南后生成了一个JAR文件。
我将archetype.jar移动到了我想要创建新项目的目录中。但我的问题是:
答案 0 :(得分:0)
这是一个你要问的复杂问题......我将尝试总结我所知道的内容,让我们看看它是否有帮助。
您的问题的答案:
1)如果在生成archtype等之后只有基本的Maven项目结构,如果你运行maven clean install并且项目产生了一个jar,理论上这应该可以从命令行立即执行并且是独立的
但是,当您向小项目添加依赖项时,并非所有依赖项都自动构建到独立jar中,有时您必须告诉maven将它们捆绑到它中。
Maven Shade插件 - 将所有必需的依赖项添加到jar中
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>MainApp</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>launcher</shadedClassifierName>
</configuration>
</plugin>
</plugins>
</build>
2)您不需要集成到任何存储库,它建议用于更广泛的项目,以便您可以将工件发布到您的公司Repo以便开发人员之间使用
3)最简单的方法是在Intellij中创建一个新项目,将Maven指定为项目类型,它将为您提供默认的项目结构。在pom文件中,然后指定我粘贴在上面的构建块,你基本上很好......如果你需要Dependencies也运行你自己的代码,你需要在Dependencies块中添加它们。
答案 1 :(得分:0)
所以,我在生成之前最终使用了以下命令:
mvn install:install-file -Dfile=<path-to-jar-archetype-file> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=jar
执行命令后,jar会安装在您的本地仓库中。您可以使用例如IntelliJ生成项目,或者转到要生成项目的路径...
mvn archetype:generate