2012-03-12 93 views
1

我使用gradle作为项目依赖项管理器,但由于我更喜欢​​netbeans,并且找不到maven的本地集成,我将gradle生成的默认pom复制为pom.xml。但是,我如何设置源和目标级别?设置编译器级别对于Gradle生成的Maven pom

我的build.gradle看起来像

apply plugin: 'eclipse' 
apply plugin: 'maven' 
apply plugin: 'java' 

targetCompatibility=1.6 
sourceCompatibility=1.6 

我跑

gradle install 

,并检查构建/劲歌/ POM-default.xml中它从来没有配置这是默认的来源,也不目标水平后,到1.3

我缺乏的是maven编译器插件配置

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 

并且一直未能找到如何配置pom的特定部分。我已经找到了所有配置许可证,开发人员等等但不是插件规范的示例。

回答

1

您可以按照与示例“许可证和开发人员”相同的方式添加该部分。

+0

我试图和它说'>没有这样的属性:类_SCRIPT_CLASS_NAME_:org.apache.maven.model.Model'当我尝试添加'build.plugins.plugin'成'项目'。 – BigDong 2017-09-21 07:06:51

2

花了我一段时间才弄明白。就像Peter在上面说过的,你可以只添加该部分。说起来容易做起来难,至少对我而言。

幸运的是,春天正在使用gradle,所以你有很多现实世界的例子。检查git的枢纽

install { 
    repositories.mavenInstaller { 
     customizePom(pom, project) 
    } 
} 

def customizePom(pom, gradleProject) { 
    pom.whenConfigured { generatedPom -> 
     // respect 'optional' and 'provided' dependencies 
     gradleProject.optionalDeps.each { dep -> 
      generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true 
     } 
     gradleProject.providedDeps.each { dep -> 
      generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided' 
     } 

     // eliminate test-scoped dependencies (no need in maven central poms) 
     generatedPom.dependencies.removeAll { dep -> 
      dep.scope == 'test' 
     } 

     // add all items necessary for maven central publication 
     generatedPom.project { 
      name = gradleProject.description 
      description = gradleProject.description 
      organization { 
       name = 'bajoneando' 
      } 
      build { 
       plugins { 
        plugin { 
         groupId = 'org.apache.maven.plugins' 
         artifactId = 'maven-compiler-plugin' 
         configuration { 
          source = '1.6' 
          target = '1.6' 
         } 
        } 
        plugin { 
         groupId = 'org.apache.maven.plugins' 
         artifactId = 'maven-surefire-plugin' 
         configuration { 
          includes { 
           include = '**/*Tests.java' 
          } 
          excludes { 
           exclude = '**/*Abstract*.java' 
          } 
         } 
        } 
       } 
       resources { 
        resource { 
         directory = 'src/main/java' 
         includes = ['**/*'] 
         excludes = ['**/*.java'] 
        } 
        resource { 
         directory = 'src/main/resources' 
         includes = ['**/*'] 
        } 
       } 
       testResources { 
        testResource { 
         directory = 'src/test/java' 
         includes = ['**/*'] 
         excludes = ['**/*.java'] 
        } 
        testResource { 
         directory = 'src/test/resources' 
         includes = ['**/*'] 
        } 
       } 
      } 
      developers { 
       developer { 
        id = 'lnramirez' 
        name = 'Luis Ramirez Monterosa' 
        email = '*****@gmail.com' 
       } 
      } 
     } 
    } 
}