创建没有 Main 的 Jar 库 Class

Create Jar Library Without a Main Class

今天我刚刚创建了一个 Java 库。我使用 Main class 创建它,因为 IntelliJ IDEA 14 要求我添加一个。但是我希望它是一个普通的库,没有任何 Main classes。是否可以从这样的项目创建一个 jar 文件,而无需使用 main 方法使用单个 class?如果是这样,你如何创建这样一个jar。

如果你从不使用它,那么拥有一个 main 方法似乎有点愚蠢。

您可以通过几种方式完成,例如从命令行、IDE、maven 或其他构建工具,我描述了两种方式:

命令行:

您可以从命令行创建 jar 文件(没有 IDE),这里是参考:https://docs.oracle.com/javase/tutorial/deployment/jar/build.html

jar cf jar-file input-file(s)

其中 jar-file 是您想要的 .jar 文件名,input-file(s) 是您要放入库中的文件(可以是通配符,例如:*.class

Intellij 理念:

像本文中那样创建 Artifact,但不指定 Main class http://blog.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

然后单击构建 > 构建工件 > 构建

即使没有 Main class。

使用像 Maven 这样的构建工具(没有 IDE 依赖项,但为了方便可以从 IDE 调用)和 shade 插件来创建一个 'uber' JAR(包括所有需要的将依赖项放入项目的最终 JAR 中)...

"pom.xml"

...

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
       <!-- Run shade goal on package phase -->
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Shade 插件文档:

https://maven.apache.org/plugins/maven-shade-plugin/