【问题标题】:Gradle multi-project buildGradle 多项目构建
【发布时间】:2015-04-26 05:53:45
【问题描述】:

我的项目结构如下:

my-project
 +my-project-data
 +my-project-service
 +my-project-example

这些 my-project-data、my-project-service、my-project-example 中的每一个都在 settings.gradle 文件中定义为 my-project 的子项目。当然,my-project-services 依赖于 my-project-data。并且 my-project-examples 依赖于 my-project-data 和 my-project 服务。

在 my-project-examples 项目中,我希望有一些带有 main 方法的类并对 DB 进行一些查询(假设 main 类在包 com.project.main 中)。此外,我想在命令行中执行它:

java -jar my-project.jar

但要做到这一点,我必须设置 Main-Class 属性。我必须在根项目 build.gradle 或其他地方执行此操作,属性的值必须是什么?

【问题讨论】:

  • 我需要什么?
  • 他的意思是应用程序插件是用来定义一个从 Gradle 运行的类。您可能会在“示例”子项目中使用该插件。

标签: spring gradle build.gradle


【解决方案1】:

您可以使用应用程序插件来提供您所需要的。

将以下内容添加到您的示例项目 build.gradle:

apply plugin: 'application'
mainClassName = "com.company.package.YourClassWithMain"

然后,只需在示例项目目录下执行“gradle run”(或使用 gradle wrapper)即可运行示例。

【讨论】:

  • 非常感谢。我也发现了这个。现在,如果我在根项目文件夹中并执行 gradle build 命令,它不会打包 jar。在非多项目构建的情况下,当您执行 gradle build 命令时,您 gradle 创建文件夹 build 以及在哪个文件夹中有子文件夹 libs,这里是 jar。但现在我没有这样的一个。有什么想法吗?
  • 我会给你一些关于这个的更多细节。我想在命令行中写这样的东西: java -jar my-project.jar db.username=my_username db.password=my_pass
  • 关于您的第一条评论,这很奇怪,因为它不应该影响 jar 的创建。你能分享一些代码吗?关于您的第二条评论:这是纯 Java,与 Gradle 无关。只需确保您的主方法签名接收参数 (public static void main(String[] args))
猜你喜欢
  • 2012-06-24
  • 1970-01-01
  • 2021-03-31
  • 2017-02-11
  • 2020-08-16
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
相关资源
最近更新 更多