Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails1.3.9和GrailsMelody:javamelody.jar在使用OpenJDK1.6构建war时未打包_Java_Grails_Groovy_Grails Plugin_Openjdk - Fatal编程技术网

Grails1.3.9和GrailsMelody:javamelody.jar在使用OpenJDK1.6构建war时未打包

Grails1.3.9和GrailsMelody:javamelody.jar在使用OpenJDK1.6构建war时未打包,java,grails,groovy,grails-plugin,openjdk,Java,Grails,Groovy,Grails Plugin,Openjdk,我们正在维护一个在Grails1.3.9中开发的webapp 为了监控性能,该应用程序安装了grails melody 1.21插件 Grails1.3.x的存储库中似乎再也没有该插件了。我从网站上下载了它 in stackoverflow建议将压缩的插件放在lib中,然后从BuildConfig.groovy引用 plugins { runtime ":hibernate:1.3.9" build ":tomcat:1.3.9" compile ":dojo:1.6.1

我们正在维护一个在Grails1.3.9中开发的webapp

为了监控性能,该应用程序安装了grails melody 1.21插件

Grails1.3.x的存储库中似乎再也没有该插件了。我从网站上下载了它

in stackoverflow建议将压缩的插件放在lib中,然后从BuildConfig.groovy引用

plugins {
    runtime ":hibernate:1.3.9"
    build ":tomcat:1.3.9"
    compile ":dojo:1.6.1.17"

    // Downloaded from
    // https://code.google.com/p/javamelody/downloads/list?can=1&q=grails
    // Installed from lib
    // https://stackoverflow.com/questions/15751285/whats-the-correct-way-to-install-a-grails-plugin-from-a-zip-file

    compile ":grails-melody:1.21"
}
我这样做了,在使用OracleJDK7(在Ubuntu14.04上)构建war文件时,这个过程运行良好。我不得不将grails-grails-melody-1.21.zip重命名为grails-melody-1.21.zip,以便找到它

$ java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
在构建过程中,melody的依赖项在构建过程开始时加载,此时grails文件也是副本:

...
Downloading: /home/matejk/devel/grails/grails-1.3.9/lib/servlet-api-2.5.jar ...
Download complete.
Downloading: /home/matejk/devel/grails/grails-1.3.9/lib/jsp-api-2.1.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.pom.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.pom.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.pom.sha1 ...
Download complete.
Downloading: /home/matejk/devel/grails/grails-1.3.9/lib/groovy-all-1.7.8.jar ...
Download complete.
Downloading: /home/matejk/devel/grails/grails-1.3.9/lib/commons-beanutils-1.8.0.jar ...
Download complete.
...
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.jar.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.jar.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.jar.sha1 ...
Download complete.
Downloading: /home/matejk/devel/grails/grails-1.3.9/lib/aspectjweaver-1.6.8.jar ...
...
生成的war文件在WEB-INF/lib中包含javamelody、jrobin和itext JAR

但是,需要在另一台机器(Jenkins)上使用JDK1.6构建应用程序,在这台机器上,每次构建都要对源代码进行干净的签出

java -version
java version "1.6.0_31"
OpenJDK Runtime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
JAR的下载发生在构建过程的后期:

Executing hibernate-1.3.9 plugin post-install script ...
Plugin hibernate-1.3.9 installed
Installing zip /var/lib/jenkins/.ivy2/cache/org.grails.plugins/grails-melody/zips/grails-melody-1.21.0.zip... ...
    [mkdir] Created dir: /var/lib/jenkins/workspace/etermin-2.4/target/projects/etermin-2.4/plugins/grails-melody-1.21
    [unzip] Expanding: /var/lib/jenkins/.ivy2/cache/org.grails.plugins/grails-melody/zips/grails-melody-1.21.0.zip into /var/lib/jenkins/workspace/etermin-2.4/target/projects/etermin-2.4/plugins/grails-melody-1.21
Installed plugin grails-melody-1.21 to location /var/lib/jenkins/workspace/etermin-2.4/target/projects/etermin-2.4/plugins/grails-melody-1.21. ...
Resolving plugin JAR dependencies ...
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.pom.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.pom.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.pom ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.pom.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/net/bull/javamelody/javamelody-core/1.44.0/javamelody-core-1.44.0.jar.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.jar.sha1 ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.jar ...
Download complete.
Downloading: http://repo1.maven.org/maven2/org/jrobin/jrobin/1.5.9/jrobin-1.5.9.jar.sha1 ...
Download complete.
然而,当使用JDK创建war时,javamelody、jrobin和itext JAR并没有打包

因此,webapp的部署和启动失败

SEVERE: Error configuring application listener of class net.bull.javamelody.SessionListener
java.lang.ClassNotFoundException: net.bull.javamelody.SessionListener
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4153)
  • 从本地目录安装插件的过程正确吗
  • 有没有办法解决这个问题,把罐子装进战争
谢谢

马特

编辑:在~/.grails/1.3.9/中删除grails文件后,JDK 6和JDK 7的行为相同:


jar文件未打包,部署失败。

我在将另一个插件与Grails 1.3.7集成时遇到了同样的问题

我知道我所说的不是最佳实践,但是我做了这个变通

将插件的.zip放在项目中所需的文件夹中,并提交到svn repo中

在本地环境中安装后,可以使用grails installPlugin脚本指定要安装的插件

当您需要在其他机器上构建应用程序时,您还可以在项目中放置一个脚本,用户可以调用该脚本。 该脚本将包含第一个grails installPlugin,之后是grails war命令

另一种方法是,如果您已签出插件的所有源代码,例如在名为myPlugin(名为my plugin)的文件夹中,并且您的项目位于MyProget文件夹中,并且每个文件夹都位于同一目录中,则可以在BuildConfig.groovy中添加一行代码:

grails.plugin.location.'my-plugin' = "../myPlugin"
显然,如果插件文件夹不在同一路径中,您可以将路径设置为正确:

grails.plugin.location.'my-plugin' = "../path/to/plugin/myPlugin"
这种方式不需要调用install-plugin方法,grails知道依赖项并打包插件

希望我能帮助你,
致以最诚挚的问候。

您可以设置本地存储库管理器,如,并从该存储库下载Grails插件。
您可以为Grails插件创建一个在Grails插件库中不可用的Artifactory存储库,并部署JavaMelody Grails插件的1.21版本。
接下来,您需要将此本地存储库添加到Grails从中解析的存储库列表(BuildConfig.Groovy):


查看spring.io博客,了解有关此类解决方案的更多详细信息。

我解决此问题的方法是将melody的DEP显式包含到BuildConfig.groovy中(从插件的依赖项复制):

我在GrailsJira中看到了一些漏洞,这些漏洞可能与我的经历有关,并在2.x中得到了解决


安装插件的过程看起来很好(并且达到了预期效果)。您是否尝试过使用
runapp
运行插件?这会产生相同的结果吗?还有一个问题:如果您解压缩WAR(只需解压缩),它是否包含
WEB-INF/lib/
中的JAR文件?这将是很好的缩小是否是一个构建步骤失败,一个类路径问题,或一些好的和奇怪的…感谢反馈。如上所述,WEB-INF/lib不包含JAR。run应用程序工作正常。谢谢。不幸的是,这没有帮助。插件的dep从未自动包括在内。
groovy grails.project.dependency.resolution = { 
    ... 
    repositories { 
      grailsPlugins() 
      grailsHome() 
      mavenRepo "http://localhost:8081/artifactory/grails-plugins-local/"
      grailsCentral() 
   } 

   plugins { 
      build ":grails-melody:1.21" 
   }
   ...
}
dependencies {
        // Deps for grails-melody (copied from plugin deps) that are *not* included automatically with plugin.

        compile "net.bull.javamelody:javamelody-core:1.44.0"
        compile ("com.lowagie:itext:2.1.7") {
            excludes "bcmail-jdk14", "bcprov-jdk14", "bctsp-jdk14"
        }
        compile "org.jrobin:jrobin:1.5.9"
    }
    plugins {
        compile ":grails-melody:1.21"
    }