【问题标题】:Gradle: Set context root of web applicationGradle:设置Web应用程序的上下文根
【发布时间】:2019-09-17 07:40:05
【问题描述】:

我有2个Gradle项目,A是根,B是A的子项目。

项目 B 生成一个 .war 文件,该文件包含在项目 A 生成的 .ear 文件中。

我想实现一个通用解决方案,我可以在其中更改项目 B 的上下文根。

根据我的研究,我应该调用ear.deploymentDescriptors.webModule(path, contextRoot)方法,其中path是神器B在耳朵中的路径。

如何从项目A中获取B的工件名称,以便我有东西可以调用上述方法?

有没有更好的方法来设置上下文根?

【问题讨论】:

    标签: gradle jakarta-ee ear


    【解决方案1】:

    假设项目 A 有一个 build.gradle 并且在 ear 内,下面的代码可以解决这个问题 -

    plugins {
      id 'ear'
    }
    
    dependencies {
       deploy project(path:':b', configuration: 'archives')
    }
    
    ear{
         /* some basis configuration */
        libDirName 'APP-INF/lib'
        deploymentDescriptor {
          /* Some basic attributes */
          fileName = "application.xml"
          version = "8"
          def Set<Project> subProj = project.getSubprojects();
          subProj.each{proj -> 
            if(proj.name.contains("B")){
              webModule(proj.name + "-" + proj.version + ".war", "/"+ proj.name)
            } //if close
          }//each close
        }//deploymentDescriptor close
    
    }//ear close
    

    【讨论】:

      猜你喜欢
      • 2015-04-18
      • 2012-07-08
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2023-03-05
      • 2012-02-01
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多