Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
63f5261a
Commit
63f5261a
authored
May 16, 2023
by
Matthias Betz
Browse files
removing build plugin
parent
1222b2b0
Pipeline
#7495
passed with stage
in 1 minute and 7 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
63f5261a
...
...
@@ -3,9 +3,6 @@ image: maven:3.8.6-eclipse-temurin-17
build
:
script
:
-
cd CityDoctorBuildPlugin
-
mvn install
-
cd ..
-
cd CityDoctorParent
-
mvn verify
artifacts
:
...
...
CityDoctorBuildPlugin/.gitignore
deleted
100644 → 0
View file @
1222b2b0
# Created by https://www.gitignore.io/api/java,maven,macos,linux,eclipse,windows,netbeans,intellij
# Edit at https://www.gitignore.io/?templates=java,maven,macos,linux,eclipse,windows,netbeans,intellij
# User specific
.sonarlint/
Servers/
### Eclipse ###
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# PyDev specific (Python IDE for Eclipse)
*.pydevproject
# CDT-specific (C/C++ Development Tooling)
.cproject
# CDT- autotools
.autotools
# Java annotation processor (APT)
.factorypath
# PDT-specific (PHP Development Tools)
.buildpath
# sbteclipse plugin
.target
# Tern plugin
.tern-project
# TeXlipse plugin
.texlipse
# STS (Spring Tool Suite)
.springBeans
# Code Recommenders
.recommenders/
# Annotation Processing
.apt_generated/
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
### Eclipse Patch ###
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath
# Annotation Processing
.apt_generated
.sts4-cache/
### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint
### Java ###
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Maven ###
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
### NetBeans ###
**/nbproject/private/
**/nbproject/Makefile-*.mk
**/nbproject/Package-*.bash
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.gitignore.io/api/java,maven,macos,linux,eclipse,windows,netbeans,intellij
/.gradle/
### Gradle ###
.gradle
**/build/
!src/**/build/
# Ignore Gradle GUI config
gradle-app.setting
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties
# Cache of project
.gradletasknamecache
# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath
### Gradle Patch ###
# Java heap dump
*.hprof
# End of https://www.toptal.com/developers/gitignore/api/gradle
CityDoctorBuildPlugin/pom.xml
deleted
100644 → 0
View file @
1222b2b0
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
de.hft.stuttgart
</groupId>
<artifactId>
CityDoctorBuildPlugin
</artifactId>
<version>
1.0.0
</version>
<packaging>
maven-plugin
</packaging>
<prerequisites>
<maven>
3.5
</maven>
</prerequisites>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven.compiler.source>
17
</maven.compiler.source>
<maven.compiler.target>
17
</maven.compiler.target>
<maven.plugin.skipErrorNoDescriptorsFound>
true
</maven.plugin.skipErrorNoDescriptorsFound>
</properties>
<dependencies>
<dependency>
<groupId>
org.apache.maven.plugin-tools
</groupId>
<artifactId>
maven-plugin-annotations
</artifactId>
<version>
3.8.2
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.apache.maven
</groupId>
<artifactId>
maven-plugin-api
</artifactId>
<version>
3.9.2
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.apache.maven
</groupId>
<artifactId>
maven-core
</artifactId>
<version>
3.9.2
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.rauschig
</groupId>
<artifactId>
jarchivelib
</artifactId>
<version>
1.2.0
</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-plugin-plugin
</artifactId>
<version>
3.8.2
</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
\ No newline at end of file
CityDoctorBuildPlugin/src/main/java/de/hft/stuttgart/citydoctor/build/plugin/DownloadJreMojo.java
deleted
100644 → 0
View file @
1222b2b0
package
de.hft.stuttgart.citydoctor.build.plugin
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipInputStream
;
import
org.apache.maven.plugin.logging.Log
;
import
org.apache.maven.plugins.annotations.LifecyclePhase
;
import
org.apache.maven.plugins.annotations.Mojo
;
import
org.apache.maven.plugins.annotations.Parameter
;
import
org.apache.maven.project.MavenProject
;
import
org.rauschig.jarchivelib.ArchiveFormat
;
import
org.rauschig.jarchivelib.Archiver
;
import
org.rauschig.jarchivelib.ArchiverFactory
;
import
org.rauschig.jarchivelib.CompressionType
;
@Mojo
(
name
=
"downloadJre"
,
defaultPhase
=
LifecyclePhase
.
INSTALL
)
public
class
DownloadJreMojo
implements
org
.
apache
.
maven
.
plugin
.
Mojo
{
private
Log
log
;
@Parameter
(
property
=
"url"
,
required
=
true
,
readonly
=
true
)
private
URL
url
;
@Parameter
(
property
=
"outputFolder"
,
defaultValue
=
"jre"
)
private
String
outputFolder
;
@Parameter
(
defaultValue
=
"${project}"
,
required
=
true
,
readonly
=
true
)
MavenProject
project
;
@Override
public
void
execute
()
{
Path
targetDir
=
Paths
.
get
(
project
.
getBuild
().
getDirectory
());
Path
outputDir
=
targetDir
.
resolve
(
outputFolder
);
if
(
Files
.
exists
(
outputDir
))
{
log
.
info
(
"Skipping jre download, folder already exists"
);
return
;
}
outputDir
.
normalize
();
createOutputFolder
(
outputDir
);
log
.
info
(
"Downloading runtime"
);
if
(
url
.
getFile
().
endsWith
(
".tar"
))
{
// handle tar file
extractTarFile
(
outputDir
);
}
else
if
(
url
.
getFile
().
endsWith
(
".tar.gz"
))
{
// handle tar file with gzip compression
extractTarGz
(
outputDir
);
}
else
if
(
url
.
getFile
().
endsWith
(
".zip"
))
{
// handle zip archive
extractZipFile
(
outputDir
);
}
}
private
void
extractTarGz
(
Path
outputDir
)
{
Archiver
archiver
=
ArchiverFactory
.
createArchiver
(
ArchiveFormat
.
TAR
,
CompressionType
.
GZIP
);
try
{
archiver
.
extract
(
url
.
openConnection
().
getInputStream
(),
outputDir
.
toFile
());
}
catch
(
IOException
e
)
{
log
.
error
(
"Could not extract file: "
+
url
,
e
);
}
}
private
void
extractTarFile
(
Path
outputDir
)
{
Archiver
archiver
=
ArchiverFactory
.
createArchiver
(
ArchiveFormat
.
TAR
);
try
{
archiver
.
extract
(
url
.
openConnection
().
getInputStream
(),
outputDir
.
toFile
());
}
catch
(
IOException
e
)
{
log
.
error
(
"Could not extract file: "
+
url
,
e
);
}
}
private
void
extractZipFile
(
Path
outputDir
)
{
try
(
ZipInputStream
zipInput
=
new
ZipInputStream
(
url
.
openConnection
().
getInputStream
()))
{
ZipEntry
entry
=
zipInput
.
getNextEntry
();
while
(
entry
!=
null
)
{
Path
newFile
=
newFile
(
outputDir
,
entry
);
if
(
entry
.
isDirectory
())
{
Files
.
createDirectories
(
newFile
);
}
else
{
// fix for Windows-created archives
Path
parent
=
newFile
.
getParent
();
if
(!
Files
.
isDirectory
(
parent
))
{
throw
new
IOException
(
"Failed to create directory: "
+
parent
);
}
Files
.
createDirectories
(
parent
);
// write file content
Files
.
copy
(
zipInput
,
newFile
);
}
entry
=
zipInput
.
getNextEntry
();
}
}
catch
(
IOException
e
)
{
log
.
error
(
"Could not retrieve file from url"
,
e
);
}
}
public
static
Path
newFile
(
Path
destinationDir
,
ZipEntry
zipEntry
)
throws
IOException
{
Path
destFile
=
destinationDir
.
resolve
(
zipEntry
.
getName
()).
normalize
();
String
destDirPath
=
destinationDir
.
toString
();
String
destFilePath
=
destFile
.
toString
();
if
(!
destFilePath
.
startsWith
(
destDirPath
+
File
.
separator
))
{
throw
new
IOException
(
"Entry is outside of the target dir: "
+
zipEntry
.
getName
());
}
return
destFile
;
}
private
void
createOutputFolder
(
Path
jreDir
)
{
try
{
Files
.
createDirectories
(
jreDir
);
}
catch
(
IOException
e
)
{
log
.
error
(
"Could not create output folder"
,
e
);
}
}
@Override
public
void
setLog
(
Log
log
)
{
this
.
log
=
log
;
}
@Override
public
Log
getLog
()
{
return
log
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment