Maven如何运作?

时间:2016-03-31 18:31:10

标签: java maven

我需要将我的Maven项目(用IDEA编写)发送给另一个人。所以我有一个问题:我应该发送哪些文件。据我所知,有: .idea文件夹,src文件夹和pom文件。此外,我只需要在另一台计算机上的pom文件目录中执行此命令:

  

mvn install

我已经建立了项目和jar文件。我是对的吗?

如果它是正确的我有问题 - 我的本地maven存储库中什么也没有。

[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Pa
ragonCase ---
[WARNING] Using platform encoding (Cp1251 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ Paragon
Case ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ParagonCase ---
[INFO] Surefire report directory: C:\Users\Kru\IdeaProjects\PopularWords\target\
surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running MainTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.118 sec

Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ ParagonCase ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ParagonCase ---
[INFO] Installing C:\Users\Kru\IdeaProjects\PopularWords\target\ParagonCase-1.2.
jar to C:\Users\Kru\.m2\repository\ru\nick\kru\ParagonCase\1.2\ParagonCase-1.2.j
ar
[WARNING] Failed to create parent directories for tracking file C:\Users\Kru\.m2
\repository\ru\nick\kru\ParagonCase\1.2\_remote.repositories
[INFO] Installing C:\Users\Kru\IdeaProjects\PopularWords\pom.xml to C:\Users\Kru
\.m2\repository\ru\nick\kru\ParagonCase\1.2\ParagonCase-1.2.pom
[WARNING] Failed to create parent directories for tracking file C:\Users\Kru\.m2
\repository\ru\nick\kru\ParagonCase\1.2\_remote.repositories
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.874 s
[INFO] Finished at: 2016-03-31T20:25:37+03:00
[INFO] Final Memory: 10M/155M
[INFO] ------------------------------------------------------------------------

2 个答案:

答案 0 :(得分:0)

  

我需要将我的Maven项目(用IDEA编写)发送给另一个人。所以我有一个问题:我应该发送哪些文件。

您需要发送的唯一内容是pom.xml和文件夹src。并且您不必发送.idea文件夹,因为它是IDEA特定的,与Maven无关;所以接收者可以选择自己喜欢的IDE。

  

我已经建立了项目和jar文件。我是对的吗?

是的,你是对的。

  

如果它是正确的我有问题 - 我的本地maven存储库中什么也没有。

从以下日志输出中可以看到,项目似乎已正确构建:

  

[INFO]将C:\ Users \ Kru \ IdeaProjects \ PopularWords \ target \ ParagonCase-1.2.jar安装到C:\ Users \ Kru.m2 \ repository \ ru \ nick \ kru \ ParagonCase \ 1.2 \ ParagonCase-1.2的.jar

要验证这一点,您可以转到target目录,看看 jar 文件是否存在。

为什么你没有在本地存储库中获取工件可能与Maven抱怨它无法创建父目录时显示的警告有关:

  

[警告]无法为跟踪文件C:\ Users \ Kru.m2 \ repository \ ru \ nick \ kru \ ParagonCase \ 1.2_remote.repositories创建父目录   [INFO]将C:\ Users \ Kru \ IdeaProjects \ PopularWords \ pom.xml安装到C:\ Users \ Kru.m2 \ repository \ ru \ nick \ kru \ ParagonCase \ 1.2 \ ParagonCase-1.2.pom   [警告]无法为跟踪文件C:\ Users \ Kru.m2 \ repository \ ru \ nick \ kru \ ParagonCase \ 1.2_remote.repositories

创建父目录

所以我建议您调查为什么Maven无法创建thos目录。

答案 1 :(得分:-1)

你应该在你当地的.m2中找到一些东西,但是你没有必要把它发送给你的伴侣。如果在.m2中没有找到JAR,Maven会去中央仓库。

如果您说您的应用程序专用的JAR在任何中央Maven仓库中都无法使用,那么您确实遇到了问题。使用您的应用程序的任何人在构建时都必须满足依赖关系。

如果你不能将你的应用程序放入GitHub并让其他人通过签出成功构建它,那么你做错了。