- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现Gradle的多个项目文档对多项目设置中项目的源和输出将位于何处感到困惑和无助。
我想看一个使用Java和application
插件的具体示例,而不仅仅是写到标准输出的任务。
我正在尝试构建2到4个共享一些通用类但具有不同主类的Java应用程序。我已经在一个项目EG中看到了几种方法,您可以在其中使用application
插件,但是禁用脚本的默认值,然后为每个应用程序创建自定义任务。我希望可以通过以下子项目来维护一个更简单的方法来完成此任务:
~<project>/src/java/{main,test}/pkg/name/
树中water/
build.gradle (uses plugin java, builds main and test sourcesets)
whale/
build.gradle (uses plugin application for whale.WhaleApp, depends on water proj)
krill/
build.gradle (uses plugin application for krill.KrillApp, depends on water proj)
src/
java/
main/<namespace>/
common/
Water.java (common utils)
Life.java (a base class for Whale etc)
whale/
WhaleApp.java (main cmd line for Whales)
Whale.java (extends Life)
krill/
KrillApp.java (main cmd line for Krill)
Krill.java (extends Life)
test/<namespace>/
common/
*Test.java
whale/
*Test.java
krill/
*Test.java
最佳答案
这需要经过反复试验,但是如果让其他人受益,我可以通过以下文件设置(类似于我的问题的布局(其中未提及重要的settings.gradle文件)来解决我的约束)。那么基本的工作设置如下所示:
结构体
water/
settings.gradle
build.gradle
whale/
settings.gradle
build.gradle
krill/
settings.gradle
build.gradle
src/
java/
main/<namespace>/
common/
Water.java
Life.java
whale/
WhaleApp.java
Whale.java
krill/
KrillApp.java
Krill.java
test/<namespace>/
common/
*Test.java
whale/
*Test.java
krill/
*Test.java
这些文件的内容如下所示:
rootProject.name = 'water'
include 'whale', 'krill'
水/建筑等级
group 'oceanGroup'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
sourceSets {
main { java { srcDir 'src/java/main' }}
test { java { srcDir 'src/java/test' }}
}
repositories { mavenCentral() }
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
鲸鱼/settings.gradle
$task.name = 'whale'
鲸鱼/build.gradle
apply plugin: 'application'
mainClassName = '<namespace>.whale.WhaleApp'
dependencies {
compile project(rootProject.path)
runtime project(rootProject.path)
}
磷虾/settings.gradle
$task.name = 'krill'
磷虾/ build.gradle
apply plugin: 'application'
mainClassName = '<namespace>.krill.KrillApp'
dependencies {
compile project(rootProject.path)
runtime project(rootProject.path)
}
现在,如果您发布
gradle installDist
,它将在每个子项目中创建一个
build/install/$task.name/bin/$task.name
脚本,您可以使用该脚本在复制到
lib
目录的jar中运行正确的主类。如果仅使用
assemble
,则会获得正确的jar,以及
build/scripts
中的脚本,但是如果没有jar放在类路径或类似路径上,它们将无法运行。
settings.gradle
中的单个
build.gradle
和
water
设置完全配置“多项目”设置构建目录。
关于gradle - 明确将多个应用程序作为具有共同依赖项和共同来源的子项目分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634581/
所以,我有一个类似于 this one 的用例,但我觉得有一些额外的细节值得提出一个新问题。 ( related questions ,供引用) 我正在编写一个实现 a cycle 的数据结构.基本设
我正在使用 Django 编写一个社交网络应用程序,需要实现类似于 Facebook“Mutual Friends”概念的功能。我有一个像这样的简单模型: class Friend(models.Mo
我有一个 iOS 应用程序,用户可以在其中使用 Facebook 登录并授予 user_friends 权限。从 Graph API 2.0 开始,Facebook 声称你无法获取两个人之间所有的共同
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
我是一名优秀的程序员,十分优秀!