這對我來說很好。
我的主類:
package com.curso.online.gradle;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
public class Main {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Main.class);
logger.debug("Starting demo");
String s = "Some Value";
if (!StringUtils.isEmpty(s)) {
System.out.println("Welcome ");
}
logger.debug("End of demo");
}
}
而且這是我的文件的build.gradle內容:
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'log4j:log4j:1.2.16'
}
task fatJar(type: Jar) {
manifest {
attributes 'Main-Class': 'com.curso.online.gradle.Main'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
而且我在寫我的控制檯如下:
java -jar ProyectoEclipseTest-all.jar
輸出很好:
log4j:WARN No appenders could be found for logger (com.curso.online.gradle.Main)
.
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in
fo.
Welcome
我不得不修改這configurations.runtime.collect爲我的項目,我有運行時依賴以及。 – vextorspace 2016-06-29 17:32:33
我不得不添加`def mainClassName`來使代碼工作......我收到了無法爲根項目設置未知屬性'mainClassName' – hanskoff 2017-05-12 12:45:08
如何處理文件名衝突?不同JAR中相同路徑上的文件將被覆蓋。 – waste 2017-08-20 10:47:39