Установка уровня компилятора Для сгенерированного Gradle Maven pom - PullRequest
1 голос
/ 12 марта 2012

Я использую gradle в качестве менеджера зависимостей проекта, но так как мне больше нравятся netbeans и я не могу найти собственную интеграцию с maven, я копирую pom по умолчанию, сгенерированный gradle, как pom.xml. Но как мне установить исходный и целевой уровень?

мой build.gradle выглядит как

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

targetCompatibility=1.6
sourceCompatibility=1.6

после того, как я бегу

gradle install

и проверьте build / poms / 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>

и не удалось найти, как настроить эту конкретную часть пом. Я нашел все примеры, где они настраивают лицензию, материалы для разработчиков и т. Д., Но не указанный плагин.

Ответы [ 2 ]

3 голосов
/ 05 апреля 2012

мне понадобилось время, чтобы понять это.Как сказал Питер выше, вы можете просто добавить этот раздел.Легче сказать, чем сделать, хотя, по крайней мере, для меня.

К счастью, весна использует gradle, поэтому у вас есть много примеров из реальной жизни.проверь git hub

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'
                }
            }
        }
    }
}
1 голос
/ 12 марта 2012

Вы можете добавить этот раздел точно так же, как это делают примеры для «лицензии и разработчика».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...