如何在intellij indea中创建一个groovy项目的jar

时间:2015-11-12 07:29:54

标签: intellij-idea groovy jar

我在intellij中创建了一个我的groovy项目罐子,在项目设置中添加了groovy lib。但是当我在发生异常后运行那个jar时

Exception in thread "main" java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 13 more

可能是创建jar的问题。如何在intellij Idea中创建一个groovy项目的jar。

1 个答案:

答案 0 :(得分:-1)

使用Intellij Idea中的gradle支持。

  1. 此处所述的Intellij Idea 项目的第一个有效gradle支持:https://www.jetbrains.com/idea/help/working-with-gradle-projects.html

  2. 将您的源移动到默认的gradle目录树。必须在src/main/groovy/...中移动常规源文件,并在src/test/groovy/...中移动测试源。 (PS:您可以将gradle配置为在默认值以外的其他目录中查找源,但移动源更容易,更安全。)

    enter image description here

    在屏幕截图中,您会看到java源的目录树。您改为使用groovy

  3. 在项目的根目录中添加gradle构建文件

    基本的gradle文件(必须命名为build.gradle)可以如下所示:

     buildscript {
         repositories {
             mavenCentral()
         }
         dependencies {}
     }
    
     apply plugin: 'groovy'
     apply plugin: 'java'
     apply plugin: 'idea'
    
     jar {
         baseName = 'your_project_name'
         version =  '0.1.0'
         manifest {
             attributes("Build-Time": new Date().format("yyyy-MM-dd HH:mm:ss"),
                     "Build-Jdk": System.getProperty("java.version"),
                     "Built-By": System.getProperty("user.name"),
                     "Created-By": "Gradle",
             )
         }
     }
    
     repositories {
         mavenCentral()
     }
     // java version dependency
     sourceCompatibility = 1.7
     targetCompatibility = 1.7
    
     dependencies {
         // your local jar dependency
         compile files('./lib/your_jar.jar')
         // groovy
         compile 'org.codehaus.groovy:groovy-all:2.1.9'
    
         //other useful dependencies
         compile 'log4j:log4j:1.2.17'
         testCompile group: 'junit', name: 'junit', version: '4.11'
     }
    
     task wrapper(type: Wrapper) {
         gradleVersion = '2.3'
     }
    
  4. 现在使用Intellij中的gradle插件enter image description here

  5. Wenn Intellij完成构建,你可以在build/libs/your_project_name.jar

  6. 找到你的可执行jar