Eclipse工作区设置并打包独立jar

标签 eclipse maven gradle

我在 Eclipse 工作区中有 5 个常规 Java 项目,它们具有相互依赖关系和外部 jar 依赖关系 以 Maven 存储库形式存在的库和不作为 Maven 存储库存在的库。

Eclipse 内一切正常,但我需要执行两项任务:

1) 将所有内容打包到可运行的 jar 中,我可以将其上传到另一台计算机并运行,而无需进行设置 那里有相同的 eclipse 环境。我一直在研究 gradle/maven 但不知道我是否需要像那样“复杂”的东西 似乎我的很多设置都必须更改工作区设置才能使用这些工具,但我可能是错的。

2) 我很快想在 google code 上托管两个 java 项目的代码,因此工作区应该以某种方式构建 这使得该任务顺利进行。

我提到这两项任务是因为我不知道它们是否以某种方式交互。

如何以良好的方式解决这个问题? 提前致谢。

最佳答案

您的描述听起来非常适合 Gradle 的多项目支持及其 eclipse 和应用程序插件。这是我将如何处理它的一个简单示例。

您的项目可能位于同一个 Eclipse 工作区中,但不一定位于同一个文件夹下,因此请记住以下目录结构假设您可以自由移动它们。

|-- component1
|-- component2
`-- myRunnableApp

第一步是创建顶级 build.gradle 文件和 settings.gradle。

|-- build.gradle
|-- settings.gradle
|-- component1
|-- component2
`-- myRunnableApp

您的settings.gradle将指示gradle将子目录视为子项目。

include ':component1', ':component2', ':myRunnableApp' 

您的 build.gradle 将包含所有子项目通用的设置,在这种特殊情况下,我们要应用 java 和 eclipse 插件:

subprojects {

  apply plugin: 'eclipse'
  apply plugin: 'java'

  repositories {
    mavenCentral()
  }
}

这应该足以让您通过发出 gradle eclipse 来生成 Eclipse 项目。接下来,您需要这样声明项目之间的依赖关系:

component1/build.gradle

dependencies {
    // declare your 3rd party jar dependencies as needed
    compile 'group:artifact:version'
}

现在您可以声明项目之间的依赖关系 - 这将在您生成 Eclipse 项目文件时反射(reflect)出来。

component2/build.gradle

dependencies {
    compile project(':component1')
}

最后,您需要将应用程序插件应用到您的可运行项目中。它将生成您的 jar 文件以及适用于 UNIX 和 Windows 的包装器 sh/bat 文件。

myRunnableApp/build.gradle

apply plugin: 'application'

mainClassName = 'my.custom.app.Main'

dependencies {
    // component 1 is a transitive dependency of component 2
    compile project(':component2')
}

就是这样!我希望这应该是推出您自己的构建的良好起点。查看多项目构建、java 插件、应用程序插件和依赖管理的 gradle 文档。

希望有帮助!

关于Eclipse工作区设置并打包独立jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107977/

相关文章:

java - 如何设置具有多个子项目的 Eclipse 项目 (OSGi-Bundle)

java - Android 将自定义图像设置为标签文本

android - R 无法解析 - Android,不导入 android.R;陈述

Maven jacoco 排除不起作用

eclipse - Maven-Dependency-Plugin:Aether RepositorySystem 的 NoSuchElementException

eclipse - 如何正确显示问题标记?不显示文本编辑器和问题 View

java - Maven 和 *非常慢* 互联网连接 : how to speed up download?

intellij-idea - Intellij IDEA 12.1.6+ Gradle 1.9 中的 "Cannot resolve symbol"

android-studio - 在 Android Studio 上重新创建 Gradle 脚本

android - Proguard,请勿混淆gradle jars