Skip to content

Commit

Permalink
v0.5.x: add parent java multi project
Browse files Browse the repository at this point in the history
  • Loading branch information
daggerok committed Feb 2, 2018
1 parent b34fbf5 commit 4fd7c00
Show file tree
Hide file tree
Showing 28 changed files with 926 additions and 13 deletions.
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Then generate your new project:
```bash
yo daggerok-fatjar
# enter projectDirectory or just press enter (default: app)
# chose scala support if needed (default: false)
# chose projectType (default: java)
cd $projectDirectory
```

Expand Down Expand Up @@ -64,6 +64,13 @@ scala project:
* support testing using junit 4, scalactic, scalatest, specs2
* docker / docker-compose support

java parent multi project:

* java 8 based parent multi project
* support maven
* support gradle
* docker / docker-compose support

## Getting To Know Yeoman

* Yeoman has a heart of gold.
Expand Down
15 changes: 10 additions & 5 deletions generators/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,15 @@ module.exports = class extends Generator {
default: 'app'
},
{
type: 'confirm',
name: 'isScalaSupported',
message: 'Would you like supports scala?',
default: false
type: 'list',
name: 'projectType',
message: 'My friend, what type of project do you want to create today?',
choices: [
'java',
'scala',
'java-parent-multi-project',
],
default: 'java',
},
];

Expand All @@ -39,7 +44,7 @@ module.exports = class extends Generator {
writing() {

const projectDirectory = safety(this.props.projectDirectory);
const projectType = this.props.isScalaSupported ? 'scala' : 'java';
const projectType = this.props.projectType;

[
'**/*',
Expand Down
11 changes: 11 additions & 0 deletions generators/app/templates/java-parent-multi-project/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.hg
.gradle
out
build
target
.idea
*.iml
*.ipr
*.iws
*.log
.DS_Store
12 changes: 12 additions & 0 deletions generators/app/templates/java-parent-multi-project/.hgignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
syntax: glob
^.gradle/*
.idea/*
.git/*
*/out/*
*/build/*
*/target/*
.DS_Store
*.iml
*.ipr
*.iws
*.log
21 changes: 21 additions & 0 deletions generators/app/templates/java-parent-multi-project/.mvn/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM openjdk:8u151-jre-alpine3.7
MAINTAINER Maksim Kostromin https://github.com/daggerok
RUN apk --no-cache add busybox-suid bash curl sudo \
&& adduser -h /home/appuser -s /bin/bash -D -u 1025 appuser wheel \
&& echo "appuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& sed -i "s/.*requiretty$/Defaults !requiretty/" /etc/sudoers \
&& apk del busybox-suid \
&& rm -rf /tmp/* /var/cache/apk/*
USER appuser
WORKDIR /home/appuser
VOLUME /home/appuser
ENTRYPOINT java -XX:+UnlockExperimentalVMOptions \
-XX:+UseCGroupMemoryLimitForHeap \
-XshowSettings:vm \
-jar ./app.jar
CMD /bin/bash
#EXPOSE 8080
#HEALTHCHECK --timeout=1s \
# --retries=35 \
# CMD curl -f http://127.0.0.1:8080/actuator/health || exit 1
COPY --chown=appuser ./target/*.jar ./app.jar
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
24 changes: 24 additions & 0 deletions generators/app/templates/java-parent-multi-project/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#service:
#- docker
#sudo: required
group: travis_lts
env:
global:
TERM=dumb
language: java
jdk:
- oraclejdk8
- openjdk8
install: true
#before_script:
#- sudo apt udate -y || true
#- sudo apt install -y --no-install-recommends curl jq libxml2-utils docker-ce python-pip
#- sudo pip install docker-compose httpie
#- source <(curl -s https://raw.githubusercontent.com/daggerok/bash-functions/master/main.bash)
script:
- bash mvnw
- bash gradlew
cache:
directories:
- $HOME/.m2
- $HOME/.gradle
19 changes: 19 additions & 0 deletions generators/app/templates/java-parent-multi-project/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
= <%= projectDirectory %>

generated using link:https://github.com/daggerok/generator-daggerok-fatjar/[daggerok-fatjar] yeoman generator

inside:

. java 8 based parent multi project
. support maven
. support gradle
. docker / docker-compose support

.build
----
./mvnw clean package com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up
./mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down
./gradlew clean build composeUp
./gradlew composeDown
----
52 changes: 52 additions & 0 deletions generators/app/templates/java-parent-multi-project/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
buildscript {
ext {
javaVersion = "1.8"
}
}

plugins {
id "idea"
id "eclipse"
id "com.avast.gradle.docker-compose" version "0.6.12"
}

allprojects {

apply plugin: "base"
apply plugin: "maven"

group = "daggerok"
version = "0.0.1"

defaultTasks "clean", "build"

task wrapper(type: Wrapper) {
gradleVersion = "4.5"
distributionType = "ALL"
}
}

subprojects {

apply plugin: "base"

sourceCompatibility = targetCompatibility = "$javaVersion"

repositories {
mavenLocal()
mavenCentral()
}
}

dockerCompose {
useComposeFiles = [project.file("docker-compose-gradle.yaml")]
captureContainersOutput = true
stopContainers = true
removeContainers = true
removeImages = "Local"
removeVolumes = true
removeOrphans = true
projectName = project.name
}

composeUp.dependsOn assemble
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
version: "2.1"

services:

gradle-<%= projectDirectory %>-app:
build:
context: .
dockerfile: gradle/Dockerfile
volumes: ["gradle-app-data:/home/appuser"]
networks: [backing-services]
# ports: ["8080:8080"]
# restart: unless-stopped
# mem_limit: 209715200 # container limit: 200Mb (200 * 1024 * 1024)

volumes:
gradle-app-data: {}

networks:
backing-services:
driver: bridge
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
version: "2.1"

services:

maven-<%= projectDirectory %>-app:
build:
context: .
dockerfile: .mvn/Dockerfile
volumes: ["maven-app-data:/home/appuser"]
networks: [backing-services]
# ports: ["8080:8080"]
# restart: unless-stopped
# mem_limit: 209715200 # container limit: 200Mb (200 * 1024 * 1024)

volumes:
maven-app-data: {}

networks:
backing-services:
driver: bridge
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM openjdk:8u151-jre-alpine3.7
MAINTAINER Maksim Kostromin https://github.com/daggerok
RUN apk --no-cache add busybox-suid bash curl sudo \
&& adduser -h /home/appuser -s /bin/bash -D -u 1025 appuser wheel \
&& echo "appuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& sed -i "s/.*requiretty$/Defaults !requiretty/" /etc/sudoers \
&& apk del busybox-suid \
&& rm -rf /tmp/* /var/cache/apk/*
USER appuser
WORKDIR /home/appuser
VOLUME /home/appuser
ENTRYPOINT java -XX:+UnlockExperimentalVMOptions \
-XX:+UseCGroupMemoryLimitForHeap \
-XshowSettings:vm \
-jar ./app.jar
CMD /bin/bash
#EXPOSE 8080
#HEALTHCHECK --timeout=1s \
# --retries=35 \
# CMD curl -f http://127.0.0.1:8080/actuator/health || exit 1
COPY --chown=appuser ./build/libs/*.jar ./app.jar
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip
Loading

0 comments on commit 4fd7c00

Please sign in to comment.