如何使用Gradle向ejbdeploy.bat提供依赖项列表

如何使用Gradle向ejbdeploy.bat提供依赖项列表,gradle,build.gradle,Gradle,Build.gradle,我们最近开始使用Gradle(1.12)来构建我们的应用程序组件,我们首先开始进行EJB部署。这就是我们正在努力实现的目标: 编译一个位于项目目录/ejbModule的源代码集(这包括java类和META-INF文件夹,其中包含ejb-jar.xml和其他与websphere相关的xml) 创建一个包含上述包和资源的jar 运行位于%WAS_HOME%\bin的ejbdeploy.bat,它将输入作为在步骤2中创建的jar,这将创建存根/骨架,并将jar重新打包到不同的目录中 现在这是我的gra

我们最近开始使用Gradle(1.12)来构建我们的应用程序组件,我们首先开始进行EJB部署。这就是我们正在努力实现的目标:

  • 编译一个位于项目目录/ejbModule的源代码集(这包括java类和META-INF文件夹,其中包含ejb-jar.xml和其他与websphere相关的xml)

  • 创建一个包含上述包和资源的jar

  • 运行位于%WAS_HOME%\bin的ejbdeploy.bat,它将输入作为在步骤2中创建的jar,这将创建存根/骨架,并将jar重新打包到不同的目录中
  • 现在这是我的gradle构建文件

    def wasHome = 'C:/Data/IBM/WebSphere/AppServer'
    def internalClasses = 'C:/GoldCopy1/Workspace/chimessharedlib'
    def appPath = 'C:/GoldCopy1/Workspace/IEApp'
    
    apply plugin:'java'
    
    repositories {
    
    flatDir {
       dirs wasHome + '/lib'
       dirs internalClasses
       dirs appPath
      }
    }
    
    dependencies {
    
    compile name : 'j2ee'
    compile name : 'commons-lang-2.3'
    compile name : 'FW'
    compile name : 'Common'
    compile name : 'DA'
    compile name : 'ST'
    }
    
    sourceSets {
    main {
        java {
            srcDir '/ejbModule'
        }
        resources {
            srcDir '/ejbModule'
        }
      }
    }
    
    task runEJBDeploy (type:Exec) {
    commandLine wasHome + '/bin/ejbdeploy.bat', '/C'
    
    def inputJar = "" + libsDir + File.separator + 'AR.jar';
    println inputJar;
    def argsList = [inputJar, "C:\\tpp" , "C:\\tpp\\deploy\\AR.jar" , "-complianceLevel", "5.0"]
    args = argsList;
    }
    
    因此,通过运行上面的runEJBDeploy任务,我想生成如下命令:

    ejbdeploy.bat -cp "C:\tpp\FW.jar;C:\tpp\DA.jar;C:\tpp\Common.jar" C:\tpp\AR.jar C:\tpp C:\tpp\deployed\AR.jar -complianceLevel 5.0
    
    既然build.gradle文件的dependencies{}部分已经提供了FW、DA和Common,那么有没有办法使用这些依赖项将其附加到“-cp”之后,然后运行命令

    我是gradle的新手,所以请指出任何其他错误的方法,需要改进


    提前感谢

    无法直接执行Windows批处理脚本。相反,您必须执行
    cmd/C batchScriptPath
    。您可以设置
    命令行
    ,也可以同时设置
    可执行文件
    参数
    (前者是后者的组合)类路径arg可以通过
    配置.compile.asPath
    生成。Peter我能够使用上面提供的生成文件执行批处理文件,并且ejbdeploy任务成功运行,但是由于它不包含依赖项,因此无法说出常规ClassNotFoundException或NoClassDefFoundError。Peter,添加coconfigurations.compile.asPath成功了。我能够执行ejbDeploy并生成存根。谢谢!