This commit is contained in:
parent
201bfc5b7d
commit
ff68f18ac3
2
.dockerignore
Normal file
2
.dockerignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
.git
|
||||
.gradle
|
44
.drone.yml
Normal file
44
.drone.yml
Normal file
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
kind: pipeline
|
||||
name: default
|
||||
type: docker
|
||||
|
||||
#platform:
|
||||
# os: linux
|
||||
# arch: amd64
|
||||
|
||||
|
||||
steps:
|
||||
|
||||
- name: test
|
||||
image: docker.io/bellsoft/liberica-openjdk-debian:17
|
||||
commands:
|
||||
- ./gradlew --quiet --no-daemon test
|
||||
|
||||
|
||||
- name: build-deb
|
||||
image: docker.io/debian:stable
|
||||
environment:
|
||||
AUTH_TOKEN: # Gitea access token ENV variable
|
||||
from_secret: AUTH_TOKEN # Name of DroneCI secret exposed above
|
||||
commands:
|
||||
- apt-get install -y dpkg-dev unzip zip curl
|
||||
- ./gradlew --quiet --no-daemon build jpackage
|
||||
- for file in build/jpackage/*.{rpm,deb} ; do curl -s --user "$${AUTH_TOKEN}" --upload-file "$${file}" "https://git.data.coop/api/packages/${DRONE_REPO_OWNER}/generic/${DRONE_REPO_NAME}/${DRONE_TAG}/$(basename $file)" ; done
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
|
||||
|
||||
- name: build-rpm
|
||||
image: docker.io/almalinux:8
|
||||
environment:
|
||||
AUTH_TOKEN: # Gitea access token ENV variable
|
||||
from_secret: AUTH_TOKEN # Name of DroneCI secret exposed above
|
||||
commands:
|
||||
- dnf -y install unzip zip rpm-build
|
||||
- ./gradlew --quiet --no-daemon build jpackage
|
||||
- for file in build/jpackage/*.{rpm,deb} ; do curl -s --user "$${AUTH_TOKEN}" --upload-file "$${file}" "https://git.data.coop/api/packages/${DRONE_REPO_OWNER}/generic/${DRONE_REPO_NAME}/${DRONE_TAG}/$(basename $file)" ; done
|
||||
when:
|
||||
event:
|
||||
- tag
|
86
README.md
86
README.md
|
@ -1,96 +1,34 @@
|
|||
# mDNS Explorer
|
||||
|
||||
View all multicastDNS devices.
|
||||
View all multicastDNS devices on your local network.
|
||||
|
||||
## Development
|
||||
|
||||
Java SDK version 17 (or later) is required.
|
||||
|
||||
## Native Images
|
||||
|
||||
The native images are built with GraalVM.
|
||||
Download the Gluon version of GraalVM from https://github.com/gluonhq/graal/releases/tag/gluon-22.1.0.1-Final and extract it locally.
|
||||
|
||||
Point the GRAALVM_HOME environment variable to the folder:
|
||||
|
||||
```export GRAALVM_HOME="/path/to/gluon-22.1.0.1```
|
||||
|
||||
With all requirements setup and on a supported platform, the general idea is to run:
|
||||
Information on how to build and package jftpd:
|
||||
|
||||
```shell
|
||||
./gradlew clean build
|
||||
./gradlew nativeBuild -Ptarget=android # or -Ptarget=ios
|
||||
./gradlew nativeLink -Ptarget=android
|
||||
./gradlew nativePackage -Ptarget=android
|
||||
./gradlew nativeInstall -Ptarget=android
|
||||
./gradlew nativeRun -Ptarget=android
|
||||
./gradlew build jpackage
|
||||
```
|
||||
|
||||
or, in one go for Android:
|
||||
### Windows
|
||||
|
||||
```shell
|
||||
./gradlew -Ptarget=android clean build nativeBuild nativeLink nativePackage nativeInstall nativeRun
|
||||
```
|
||||
Download and install
|
||||
- Microsoft .NET Framework 3.5
|
||||
- Wix Toolset 3.11.2 (or later)
|
||||
|
||||
or, in one go for iOS:
|
||||
```shell
|
||||
./gradlew -Ptarget=ios clean build nativeBuild nativeLink nativePackage nativeInstall nativeRun
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
See https://docs.gluonhq.com/#prerequisites_linux
|
||||
TODO
|
||||
|
||||
For nativeBuild on Linux, install the following dependencies.
|
||||
docker build . -f docker/Dockerfile.rpm-txt
|
||||
|
||||
```shell
|
||||
sudo apt install libgtk-3-dev libavformat-dev libavutil-dev libavcodec-dev libasound2-dev libpango1.0-dev libxtst-dev build-essential
|
||||
```
|
||||
or
|
||||
|
||||
#### Building for Android (on Linux)
|
||||
|
||||
See https://docs.gluonhq.com/#prerequisites_android
|
||||
|
||||
Install Android Studio and use sdkmanager to install the following:
|
||||
|
||||
- Android SDK Platform 31
|
||||
- NDK (Side by side)
|
||||
|
||||
Point the ANDROID_NDK variable to the installed NDK directory:
|
||||
|
||||
```
|
||||
export ANDROID_NDK="/home/mark/Android/Sdk/ndk/25.2.9519653/"
|
||||
```
|
||||
|
||||
Add the platform-tools to you PATH to use 'adb' command:
|
||||
|
||||
|
||||
```
|
||||
export PATH="$PATH:/home/mark/Android/Sdk/platform-tools/"
|
||||
```
|
||||
|
||||
Run the 'adb devices' and 'adb usb' to verify your Android networkService is in development mode and allows connections.
|
||||
docker build . -f docker/Dockerfile.deb-txt
|
||||
|
||||
### MacOS
|
||||
|
||||
See https://docs.gluonhq.com/#platforms_macos
|
||||
|
||||
Install the xcode command line tools and an iPhone emulator.
|
||||
|
||||
If you have problems with *xcrun* not being able to find *iphoneos*, try:
|
||||
|
||||
```shell
|
||||
sudo xcode-select --switch /Applications/Xcode.app
|
||||
```
|
||||
|
||||
Download and install homebrew, and install the following:
|
||||
|
||||
```shell
|
||||
brew install maven
|
||||
brew install --HEAD libusbmuxd
|
||||
brew install --HEAD libimobiledevice
|
||||
```
|
||||
|
||||
#### iOS (on MacOS)
|
||||
|
||||
See https://docs.gluonhq.com/#prerequisites_ios
|
||||
TODO
|
||||
|
|
49
build.gradle
49
build.gradle
|
@ -1,4 +1,6 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'groovy'
|
||||
id 'application'
|
||||
id 'org.openjfx.javafxplugin' version '0.0.14'
|
||||
id 'com.google.osdetector' version '1.7.3'
|
||||
|
@ -14,19 +16,17 @@ import org.apache.tools.ant.filters.ReplaceTokens
|
|||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
maven {
|
||||
url 'https://nexus.gluonhq.com/nexus/content/repositories/releases'
|
||||
}
|
||||
}
|
||||
|
||||
version = "0.0.1"
|
||||
mainClassName = "biz.nellemann.mdexpl.App"
|
||||
application.mainModule = "biz.nellemann.mdexpl"
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
||||
|
||||
application {
|
||||
mainModule = 'biz.nellemann.mdexpl'
|
||||
mainClass = 'biz.nellemann.mdexpl.App'
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
|
@ -106,21 +106,6 @@ gluonfx {
|
|||
|
||||
}*/
|
||||
|
||||
/*
|
||||
shadowJar {
|
||||
//archiveBaseName.set("vtd-poc-app")
|
||||
//archiveClassifier.set('all')
|
||||
archiveVersion.set("${System.env.BITBUCKET_BRANCH ?: 'dev' }")
|
||||
}*/
|
||||
|
||||
//tasks.build.dependsOn tasks.shadowJar
|
||||
|
||||
tasks.processResources {
|
||||
filesMatching('**/configuration.properties') {
|
||||
filter(ReplaceTokens, tokens: [copyright: '2023', version: System.env.BITBUCKET_BUILD_NUMBER ?: 'development' ])
|
||||
}
|
||||
}
|
||||
|
||||
jlink {
|
||||
|
||||
forceMerge 'slf4j'
|
||||
|
@ -179,21 +164,37 @@ jlink {
|
|||
]
|
||||
|
||||
if (osdetector.release.isLike('debian')) {
|
||||
// Requires 'dpkg-dev' installed
|
||||
installerType = 'deb'
|
||||
skipInstaller = false
|
||||
installerOptions += [
|
||||
'--linux-deb-maintainer', 'mark.nellemann@gmail.com'
|
||||
]
|
||||
} else if (osdetector.release.isLike('centos')) {
|
||||
} else if (osdetector.release.isLike('centos') or osdetector.release.isLike('suse')) {
|
||||
// Requires 'rpm-build' installed
|
||||
installerType = 'rpm'
|
||||
skipInstaller = false
|
||||
installerOptions += [
|
||||
'--linux-rpm-license-type', 'APACHE-20'
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
shadowJar {
|
||||
//archiveBaseName.set("vtd-poc-app")
|
||||
//archiveClassifier.set('all')
|
||||
archiveVersion.set("${System.env.BITBUCKET_BRANCH ?: 'dev' }")
|
||||
}*/
|
||||
|
||||
//tasks.build.dependsOn tasks.shadowJar
|
||||
|
||||
tasks.processResources {
|
||||
filesMatching('**/configuration.properties') {
|
||||
filter(ReplaceTokens, tokens: [copyright: '2023', version: System.env.BITBUCKET_BUILD_NUMBER ?: 'development' ])
|
||||
}
|
||||
}
|
||||
|
|
12
docker/Dockerfile.deb-txt
Normal file
12
docker/Dockerfile.deb-txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
FROM docker.io/debian:stable AS build
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip zip curl dpkg-dev
|
||||
RUN bash -c "curl -s 'https://get.sdkman.io' | bash"
|
||||
RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 17.0.8-zulu"
|
||||
|
||||
COPY ./src /tmp/prj/src
|
||||
COPY ./gradle /tmp/prj/gradle
|
||||
COPY [ "gradlew", "build.gradle", "gradle.properties", "settings.gradle", "/tmp/prj/" ]
|
||||
|
||||
WORKDIR /tmp/prj
|
||||
RUN bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && ./gradlew --no-daemon clean build jpackage"
|
14
docker/Dockerfile.rpm-txt
Normal file
14
docker/Dockerfile.rpm-txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
FROM docker.io/almalinux:8 AS build
|
||||
|
||||
RUN dnf -y install unzip zip rpm-build
|
||||
RUN sh -c "curl -s 'https://get.sdkman.io' | bash"
|
||||
RUN sh -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 17.0.8-zulu"
|
||||
|
||||
COPY ./src /tmp/prj/src
|
||||
COPY ./gradle /tmp/prj/gradle
|
||||
COPY [ "gradlew", "build.gradle", "gradle.properties", "settings.gradle", "/tmp/prj/" ]
|
||||
|
||||
WORKDIR /tmp/prj
|
||||
RUN sh -c "source $HOME/.sdkman/bin/sdkman-init.sh && ./gradlew --no-daemon clean build jpackage"
|
||||
|
||||
COPY --from=build build/jpackage/* build/
|
1
gradle.properties
Normal file
1
gradle.properties
Normal file
|
@ -0,0 +1 @@
|
|||
version = 0.0.1
|
Loading…
Reference in a new issue