创建没有 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 插件文档:
今天我刚刚创建了一个 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 插件文档: