Closed matt6697 closed 3 years ago
matt@DESKTOP:/tmp/test$ unzip hugo-joomla-0.2-SNAPSHOT.jar
Archive: hugo-joomla-0.2-SNAPSHOT.jar
creating: META-INF/
inflating: META-INF/MANIFEST.MF
creating: com/
creating: com/thecoderscorner/
creating: com/thecoderscorner/web/
creating: com/thecoderscorner/web/hugojoomla/
inflating: hugoJoomla.xml
inflating: customHtmlModule.yaml.ftl
inflating: defaultPage.toml.ftl
inflating: defaultPage.yaml.ftl
inflating: categoryPage.toml.ftl
inflating: categoryPage.yaml.ftl
inflating: com/thecoderscorner/web/hugojoomla/NastyContentChecker.class
inflating: com/thecoderscorner/web/hugojoomla/JoomlaHugoConverter.class
inflating: com/thecoderscorner/web/hugojoomla/HugoJoomla.class
inflating: com/thecoderscorner/web/hugojoomla/JoomlaContent.class
inflating: com/thecoderscorner/web/hugojoomla/TagInfo.class
inflating: com/thecoderscorner/web/hugojoomla/JoomlaImage.class
inflating: log4j.xml
creating: META-INF/maven/
creating: META-INF/maven/com.thecoderscorner.web./
creating: META-INF/maven/com.thecoderscorner.web./hugo-joomla/
inflating: META-INF/maven/com.thecoderscorner.web./hugo-joomla/pom.xml
inflating: META-INF/maven/com.thecoderscorner.web./hugo-joomla/pom.properties
creating: lib/
extracting: lib/slf4j-log4j12-1.7.21.jar
extracting: lib/slf4j-api-1.7.21.jar
extracting: lib/log4j-1.2.17.jar
extracting: lib/spring-context-4.3.3.RELEASE.jar
extracting: lib/spring-aop-4.3.3.RELEASE.jar
extracting: lib/spring-core-4.3.3.RELEASE.jar
extracting: lib/commons-logging-1.2.jar
extracting: lib/spring-expression-4.3.3.RELEASE.jar
extracting: lib/spring-beans-4.3.3.RELEASE.jar
extracting: lib/spring-jdbc-4.3.3.RELEASE.jar
extracting: lib/spring-tx-4.3.3.RELEASE.jar
extracting: lib/freemarker-2.3.23.jar
extracting: lib/mysql-connector-java-8.0.26.jar
extracting: lib/protobuf-java-3.11.4.jar
extracting: lib/guava-30.0-jre.jar
extracting: lib/failureaccess-1.0.1.jar
extracting: lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
extracting: lib/jsr305-3.0.2.jar
extracting: lib/checker-qual-3.5.0.jar
extracting: lib/error_prone_annotations-2.3.4.jar
extracting: lib/j2objc-annotations-1.3.jar
extracting: lib/commons-cli-1.3.1.jar
extracting: lib/json-simple-1.1.1.jar
extracting: lib/junit-4.10.jar
extracting: lib/hamcrest-core-1.1.jar
extracting: lib/copy_down-1.0.jar
extracting: lib/jsoup-1.13.1.jar
creating: org/
creating: org/springframework/
creating: org/springframework/boot/
creating: org/springframework/boot/loader/
inflating: org/springframework/boot/loader/LaunchedURLClassLoader$Java7LockProvider.class
inflating: org/springframework/boot/loader/PropertiesLauncher$ArchiveEntryFilter.class
inflating: org/springframework/boot/loader/PropertiesLauncher$PrefixMatchingArchiveFilter.class
inflating: org/springframework/boot/loader/ExecutableArchiveLauncher$1.class
inflating: org/springframework/boot/loader/PropertiesLauncher.class
creating: org/springframework/boot/loader/data/
inflating: org/springframework/boot/loader/data/ByteArrayRandomAccessData.class
inflating: org/springframework/boot/loader/data/RandomAccessDataFile$DataInputStream.class
inflating: org/springframework/boot/loader/data/RandomAccessData.class
inflating: org/springframework/boot/loader/data/RandomAccessDataFile$FilePool.class
inflating: org/springframework/boot/loader/data/RandomAccessDataFile.class
inflating: org/springframework/boot/loader/data/RandomAccessData$ResourceAccess.class
creating: org/springframework/boot/loader/util/
inflating: org/springframework/boot/loader/util/SystemPropertyUtils.class
inflating: org/springframework/boot/loader/util/AsciiBytes.class
inflating: org/springframework/boot/loader/LaunchedURLClassLoader$1.class
inflating: org/springframework/boot/loader/InputArgumentsJavaAgentDetector.class
inflating: org/springframework/boot/loader/Launcher.class
inflating: org/springframework/boot/loader/LaunchedURLClassLoader.class
inflating: org/springframework/boot/loader/JarLauncher.class
creating: org/springframework/boot/loader/jar/
inflating: org/springframework/boot/loader/jar/JarEntryFilter.class
inflating: org/springframework/boot/loader/jar/JarURLConnection.class
inflating: org/springframework/boot/loader/jar/JarEntry.class
inflating: org/springframework/boot/loader/jar/Bytes.class
inflating: org/springframework/boot/loader/jar/CentralDirectoryEndRecord.class
inflating: org/springframework/boot/loader/jar/JarFile$2.class
inflating: org/springframework/boot/loader/jar/ZipInflaterInputStream.class
inflating: org/springframework/boot/loader/jar/JarFile.class
inflating: org/springframework/boot/loader/jar/JarFile$1.class
inflating: org/springframework/boot/loader/jar/JarURLConnection$1.class
inflating: org/springframework/boot/loader/jar/Handler.class
inflating: org/springframework/boot/loader/jar/JarURLConnection$JarEntryName.class
inflating: org/springframework/boot/loader/jar/JarEntryData.class
inflating: org/springframework/boot/loader/MainMethodRunner.class
inflating: org/springframework/boot/loader/InputArgumentsJavaAgentDetector$1.class
inflating: org/springframework/boot/loader/WarLauncher.class
inflating: org/springframework/boot/loader/LaunchedURLClassLoader$2.class
inflating: org/springframework/boot/loader/PropertiesLauncher$1.class
inflating: org/springframework/boot/loader/ExecutableArchiveLauncher.class
inflating: org/springframework/boot/loader/LaunchedURLClassLoader$LockProvider.class
creating: org/springframework/boot/loader/archive/
inflating: org/springframework/boot/loader/archive/JarFileArchive$JarFileEntry.class
inflating: org/springframework/boot/loader/archive/JarFileArchive.class
inflating: org/springframework/boot/loader/archive/FilteredArchive.class
inflating: org/springframework/boot/loader/archive/JarFileArchive$1.class
inflating: org/springframework/boot/loader/archive/ExplodedArchive.class
inflating: org/springframework/boot/loader/archive/FilteredArchive$2.class
inflating: org/springframework/boot/loader/archive/Archive$Entry.class
inflating: org/springframework/boot/loader/archive/Archive$EntryFilter.class
inflating: org/springframework/boot/loader/archive/FilteredArchive$1.class
inflating: org/springframework/boot/loader/archive/ExplodedArchive$FileEntry.class
inflating: org/springframework/boot/loader/archive/Archive.class
inflating: org/springframework/boot/loader/archive/Archive$EntryRenameFilter.class
inflating: org/springframework/boot/loader/archive/ExplodedArchive$FilteredURLStreamHandler.class
inflating: org/springframework/boot/loader/archive/ExplodedArchive$FileNotFoundURLConnection.class
inflating: org/springframework/boot/loader/JavaAgentDetector.class
Hugo joomla JAR is now working as a standalone jar outside of the target directory ! We could now work on automating the github release process of the program using github workflow when a new tag is created ;-)
matt@DESKTOP:/tmp/test$ java -jar hugo-joomla-0.2-SNAPSHOT.jar
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is [INFO].
log4j: root level set to INFO
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: Adding appender named [console] to category [root].
...
@davetcc : Could you please test this on your side and merge if build is ok for you ?
Looks great, I'll try this build now
Merged, checked it on my mac just now, built and all good.
Another longer term option is jlink / jpackage built into the JDK from 11 onwards, these commands build executables that don't need a JRE / JDK present.
Embedding jar dependencies in hugojoomla jar to make it run as a standalone jar outside of the target directory