代码之家  ›  专栏  ›  技术社区  ›  shahaf

如何使用maven运行build

  •  0
  • shahaf  · 技术社区  · 8 年前

    我有以下文件夹布局(使用maven deploy插件构建):

    projectrelease
        ├── README.md
        └── com
            └── example
                └── demo
                    ├── 0.0.1-SNAPSHOT
                    │   ├── demo-0.0.1-20171220.161043-1.jar
                    │   ├── demo-0.0.1-20171220.161043-1.jar.md5
                    │   ├── demo-0.0.1-20171220.161043-1.jar.sha1
                    │   ├── demo-0.0.1-20171220.161043-1.pom
                    │   ├── demo-0.0.1-20171220.161043-1.pom.md5
                    │   ├── demo-0.0.1-20171220.161043-1.pom.sha1
                    │   ├── maven-metadata.xml
                    │   ├── maven-metadata.xml.md5
                    │   └── maven-metadata.xml.sha1
                    ├── maven-metadata.xml
                    ├── maven-metadata.xml.md5
                    └── maven-metadata.xml.sha1
    

    如何使用maven cmd运行它?

    该项目是使用maven可执行jar插件构建的,可以通过以下方式运行:

    ./projectrelease/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-20171220.161043-1.jar
    

    java -jar projectrelease/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-20171220.161043-1.jar
    

    我想从根文件夹运行一个mvn cmd,这样它就能运行整个项目

    2 回复  |  直到 8 年前
        1
  •  1
  •   Stewart    8 年前

    我想从根文件夹运行一个mvn cmd,这样它就能运行整个项目

    我认为,如果没有一些额外的工具或Maven插件,这些文件本身就不能运行。此外,我不太清楚你所说的“运行项目”是什么意思。你是说编译它吗?或者以类似于正常java执行的方式运行它?

    您拥有的是属于Maven存储库的已编译工件的布局。

    二者都 人工制品 存储库 是特定的Maven概念。

    这个 .pom .xml 文件 .sha1 .md5 文件,都是Maven自己用来控制从存储库下载工件的元数据。这个 .jar 文件是感兴趣的实际工件。

    这些文件旨在安装到repo中,然后通过在中作为依赖项引用,供其他Maven项目使用 pom.xml .

    例如:

    <dependency>
        <groupId>com.example.demo</groupId>
        <artifactId>demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    

    这些文件可以安装在基于文件系统的“本地存储库”中,通常位于 ${user.home}/.m2/

    也可以运行存储库服务器。常见的存储库服务器包括 Nexus , Artifactory Archiva


    另一种可能性是 .罐子 文件是可执行的。在这种情况下,您将不使用Maven运行,而是作为普通Java文件运行:

    java -jar demo-0.0.1-20171220.161043-1.jar
    

        2
  •  0
  •   dz00dz    8 年前

    我认为您可以包括manuelly dependency jar,或者您可以使用依赖项编译项目,请参见 this .