使用Gradle和NetBeans构建可执行jar

zwghvu4y  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(217)

我花了两天时间寻找解决这个问题的方法,但没有找到解决方案。首先我想构建fat-jar,然后我放弃了它看起来更复杂的想法,所以我开始构建普通的可执行jar。我正在使用Gradle插件(http://plugins.netbeans.org/plugin/44510/gradle-support)在NetBeans 8.2中构建一些程序。
我的项目结构是这样的:
Project Structure
我对Gradle比较陌生,我使用它还不到一个月。我的***build.gradle***看起来像这样:

repositories {
   mavenCentral()
}

dependencies {
    // TODO: Add dependencies here ..
//    //   http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies
//    testCompile group: 'junit', name: 'junit', version: '4.10'

    // https://mvnrepository.com/artifact/org.apache.poi/poi
    compile group: 'org.apache.poi', name: 'poi', version: '3.16'

    // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.16'

    // https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox
    compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.6'

}

apply plugin: 'java'

mainClassName = "paket.Glavna"

jar {
    from {
        (configurations.runtime).collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    manifest {
        attributes("Main-Class": "Glavna" )
    }
}

现在,我不能让它工作,使可执行的jar。我想我已经跟踪的问题,有没有路径到主要类在jar中,但我不知道为什么它不添加它。错误我得到的是:

错误:找不到或无法加载主类DnevniIzvestajG-1.0.jar

jar运行(Glavna类内部是main):java -cp项目名称. jar数据包.Glavna
我也试过运行清单添加,但它也没有添加到主类的链接。

nwo49xxi

nwo49xxi1#

尝试使用main()方法将包添加到类中。

jar {
    archiveName = 'Glavna.jar'

    manifest {attributes 'Main-Class': 'paket.Glavna'}

    from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {}
}

构建一个像这样的胖jar不是可取的,尝试Application plugin

u1ehiz5o

u1ehiz5o2#

我使用下面的方法添加Gradle项目的.jar中的所有依赖项。

构建.gradle:-

jar {
    manifest {
        attributes(
                'Main-Class': 'com.main.MainClass'
        )
    }

 duplicatesStrategy = DuplicatesStrategy.INCLUDE
 from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }

}

相关问题