4.0.0 pl.topteam pomost GP-1.04-2-13-20191027 war TT-POMOC - dłuższe aktualizacje 2019-09-30 0 ${channel} ${channel} yyyyMMdd-HHmmss 1.8 1.8 UTF-8 UTF-8 Mantis http://support.top-team.pl/ http://www.top-team.pl/ Top-Team TT Sp. z o.o. https://www.top-team.pl/ scm:git:ssh://repo.ttserver.pl//srv/git/pomost/pomost-aktualizacje.git scm:git:ssh://scm@repo.ttserver.pl//srv/git/pomost/pomost-aktualizacje.git GP-1.04-2-13-20191027 ftp-repository ftp://top-team.home.pl/pub/channels/${project.deploy.channel} pl.topteam tt_application-core 2.1.1 javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp jsp-api 2.2.1-b03 provided javax.el el-api 2.2.1-b04 provided jstl jstl 1.2 org.apache.maven.wagon wagon-ftp 3.3.2 org.codehaus.mojo build-helper-maven-plugin 3.0.0 org.codehaus.gmaven groovy-maven-plugin 2.1 org.codehaus.groovy groovy-all 2.4.17 org.apache.maven.plugins maven-enforcer-plugin 3.0.0-M2 org.codehaus.mojo extra-enforcer-rules 1.0-beta-7 org.apache.maven.plugins maven-resources-plugin 3.1.0 org.apache.maven.plugins maven-war-plugin 3.2.3 org.apache.maven.plugins maven-scm-plugin 1.9.5 org.apache.maven.plugins maven-compiler-plugin 3.8.1 org.apache.maven.plugins maven-war-plugin true ${project.name} ${project.build.channel} ${project.version} ${maven.build.timestamp} ${excludes} true org.apache.maven.plugins maven-javadoc-plugin 3.1.0 true org.apache.maven.plugins maven-source-plugin 3.0.1 true org.apache.maven.plugins maven-install-plugin 2.5.2 true org.apache.maven.plugins maven-deploy-plugin 3.0.0-M1 org.apache.maven.plugins maven-release-plugin 2.5.3 org.apache.maven.scm maven-scm-provider-gitexe 1.9.5 false true @{project.version} release scm@repo.ttserver.pl nexus-releases http://ttprogramy.pl/nexus/content/repositories/releases/ true false nexus-snapshots http://ttprogramy.pl/nexus/content/repositories/snapshots/ false true tt-archiva-repository-internal http://ttprogramy.pl/apache-archiva/repository/internal/ true false ttserver-snapshots http://m2.ttserver.pl/content/repositories/snapshots/ false true eclipse tmp 20190101-090000 0101010 sign true org.apache.maven.plugins maven-jarsigner-plugin 3.0.0 ${keystore.type} ${keystore.path} ${keystore.alias} ${keystore.store.password} ${keystore.key.password} sign-war sign verify-signed-war verify thin false WEB-INF/lib/*.jar org.apache.maven.plugins maven-enforcer-plugin enforcements-in-thin-war validate enforce release Aktywuj dodatkowo profil 'release'! home-releases ftp://top-team.home.pl/pub/channels/${project.deploy.channel} fat false org.apache.maven.plugins maven-enforcer-plugin enforcements-in-fat-war validate enforce release Aktywuj dodatkowo profil 'release'! home-releases ftp://top-team.home.pl/pub/bundles/${project.deploy.channel} uuid uuid true home-releases ftp://top-team.home.pl/pub/channels/${project.deploy.channel} org.apache.maven.plugins maven-enforcer-plugin enforcements-in-uuid-war validate enforce release Aktywuj dodatkowo profil 'release'! org.apache.maven.plugins maven-war-plugin WEB-INF/lib/*.jar org.codehaus.gmaven groovy-maven-plugin commons-net commons-net 3.6 install execute import org.apache.commons.net.ftp.FTPClient distributionManagement = project.distributionManagement repository = distributionManagement.repository server = settings.getServer(repository.id) username = server.username password = server.password uuid = UUID.randomUUID().toString() uri = URI.create(repository.url + uuid) new FTPClient().with { connect uri.host login username, password makeDirectory uri.path disconnect() } project.snapshotArtifactRepository?.url = uri project.releaseArtifactRepository?.url = uri release false org.apache.maven.plugins maven-enforcer-plugin warnings-in-war initialize enforce false true 1.8 enforcements-in-war initialize enforce channel Określ kanał (-Dchannel=), którym dystrybuowana będzie aplikacja (np. stable, dev, tmp, mrpips) git-hash Określ zmienną 'git-hash' (-Dgit-hash=) wskazującą na commit, z którego tworzona jest aktualizacja (7 początkowych cyfr albo cały hash)! enforcements-in-installed-deployed install enforce Niedopuszczalne są zależności typu SNAPSHOT! Musi zostać określona wersja aplikacji (w pom.xml)! Niedopuszczalna jest publikacja wersji SNAPSHOT! org.codehaus.mojo extra-enforcer-rules 1.2 org.codehaus.gmaven groovy-maven-plugin release-parameters initialize execute final String SNAPSHOT = '-SNAPSHOT' Properties releaseProps = new Properties() File releasePropsFile = new File('release.properties') String pomVersion = '${project.version}'.replace(SNAPSHOT, '') String[] vNumbers = pomVersion.split('-') String releaseVersion = vNumbers[0] + '-' + vNumbers[1] + '-' + vNumbers[2] + '-' + (Integer.parseInt(vNumbers[3]) - 1) if (project.properties['project.build.channel'] == 'stable') { releaseVersion += '-' + project.properties['project.build.wpo'] releaseVersion += '-' + new Date().format("yyyyMMdd") } else if (project.properties['project.build.channel'] == 'mpips') { // nic nie dodajemy do podstawowego numeru wersji } else { releaseVersion += '-' + new Date().format("yyyyMMdd") } final List activeProfiles = project.activeProfiles.stream().map{p -> p.id}.collect() if (activeProfiles.contains("uuid")) { releaseVersion += '-' + new Date().format("HHmmss") } String snapshotVersion = pomVersion + SNAPSHOT releaseProps.setProperty('scm.tag', releaseVersion) releaseProps.setProperty('project.rel.${project.groupId}:${project.artifactId}', releaseVersion) releaseProps.setProperty('project.dev.${project.groupId}:${project.artifactId}', snapshotVersion) releaseProps.store(releasePropsFile.newWriter(), null)