Commit 2984e52d authored by Gregor Pintar's avatar Gregor Pintar

- Maven for building instead of Ant

- Launch4j instead of NSIS for Windows executable (setup is still NSIS)
- FRD parsing improvments
- Off-axis FRD support (in progress)
- New logo
parent 87e97427
*.class
*.log
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
lib/
jre/
build/
dist/
/nbproject/private/
\ No newline at end of file
*.class
*.log
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
lib/
jre/
build/
dist/
/nbproject/private/
/target/
\ No newline at end of file
# SpeakerSim
Speaker simulation software.
\ No newline at end of file
Speaker simulation software.
# How to build
Use Maven (mvn package).
\ No newline at end of file
SpeakerSim.ico

304 KB | W: | H:

SpeakerSim.ico

158 KB | W: | H:

SpeakerSim.ico
SpeakerSim.ico
SpeakerSim.ico
SpeakerSim.ico
  • 2-up
  • Swipe
  • Onion skin
; Written in 2017 by Gregor Pintar <grpintar@gmail.com>
;
; To the extent possible under law, the author(s) have dedicated
; all copyright and related and neighboring rights to this software
; to the public domain worldwide.
;
; This software is distributed without any warranty.
;
; You should have received a copy of the CC0 Public Domain Dedication.
; If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
Name "SpeakerSim"
Caption "SpeakerSim"
Icon "SpeakerSim.ico"
OutFile "SpeakerSim.exe"
VIAddVersionKey "ProductName" "SpeakerSim"
VIAddVersionKey "FileDescription" "SpeakerSim"
VIAddVersionKey "LegalCopyright" ""
VIAddVersionKey "FileVersion" "1.0.0"
VIProductVersion "1.0.0.0"
!define JAR "SpeakerSim.jar"
!define PRODUCT_NAME "SpeakerSim"
; Java
!define JRE_VERSION "7.0"
!define JRE32_URL "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=234472_96a7b8442fe848ef90c96a2fad6ed6d1"
!define JRE64_URL "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=234474_96a7b8442fe848ef90c96a2fad6ed6d1"
!define JAVAEXE "javaw.exe"
RequestExecutionLevel user
AutoCloseWindow true
XPStyle on
SetCompress off
!include "FileFunc.nsh"
!insertmacro GetFileVersion
!insertmacro GetParameters
!include "WordFunc.nsh"
!insertmacro VersionCompare
!include "StdUtils.nsh"
;Var STR_HAYSTACK
;Var STR_NEEDLE
;Var STR_CONTAINS_VAR_1
;Var STR_CONTAINS_VAR_2
;Var STR_CONTAINS_VAR_3
;Var STR_CONTAINS_VAR_4
;Var STR_RETURN_VAR
;Function StrContains
;Exch $STR_NEEDLE
;Exch 1
;Exch $STR_HAYSTACK
;StrCpy $STR_RETURN_VAR ""
;StrCpy $STR_CONTAINS_VAR_1 -1
;StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLE
;StrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACK
;loop:
;IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1
;StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1
;StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE found
;StrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 done
;Goto loop
;found:
;StrCpy $STR_RETURN_VAR $STR_NEEDLE
;Goto done
;done:
;Pop $STR_NEEDLE
;Exch $STR_RETURN_VAR
;FunctionEnd
;!macro _StrContainsConstructor OUT NEEDLE HAYSTACK
;Push '${HAYSTACK}'
;Push '${NEEDLE}'
;Call StrContains
;Pop '${OUT}'
;!macroend
;!define StrContains '!insertmacro "_StrContainsConstructor"'
Section
DetailPrint "Loading ..."
SetOutPath $EXEDIR
${GetParameters} $1
ClearErrors
StrCpy $R0 "$EXEDIR\jre\bin\${JAVAEXE}"
IfFileExists $R0 0 CheckJavaHome
Exec '"$R0" -jar "${JAR}" $1'
IfErrors CheckJavaHome End
CheckJavaHome:
ClearErrors
ReadEnvStr $R0 "JAVA_HOME"
StrCpy $R0 "$R0\bin\${JAVAEXE}"
IfErrors CheckRegistry64
IfFileExists $R0 0 CheckRegistry64
Call CheckJREVersion
IfErrors CheckRegistry64
Exec '"$R0" -jar "${JAR}" $1'
IfErrors CheckRegistry64 End
CheckRegistry64:
ClearErrors
SetRegView 64
ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R1" "JavaHome"
StrCpy $R0 "$R0\bin\${JAVAEXE}"
IfFileExists $R0 0 CheckRegistry32
Call CheckJREVersion
IfErrors CheckRegistry32
Exec '"$R0" -jar "${JAR}" $1'
IfErrors CheckRegistry32 End
CheckRegistry32:
ClearErrors
SetRegView 32
ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R1" "JavaHome"
IfErrors CheckPath
StrCpy $R0 "$R0\bin\${JAVAEXE}"
IfFileExists $R0 0 CheckPath
Call CheckJREVersion
IfErrors CheckPath
Exec '"$R0" -jar "${JAR}" $1'
IfErrors CheckPath End
CheckPath:
;ClearErrors
;Exec '"${JAVAEXE}" -jar "${JAR}" $1'
;IfErrors CheckJarfile End
CheckJarfile:
;ClearErrors
;ReadRegStr $R0 HKCR "jarfile\shell\open\command" ""
;IfErrors InstallJRE
;${StrContains} $0 "${JAVAEXE}" $R0
;StrCmp $0 "" InstallJRE
;ExecShell "" '"${JAR}"' $1
;IfErrors InstallJRE End
InstallJRE:
ClearErrors
StrCpy $2 "$TEMP\JRE.exe"
System::Call "kernel32::GetCurrentProcess()i.s"
System::Call "kernel32::IsWow64Process(is,*i.r0)"
StrCmpS $0 0 +3
StrCpy $0 "${JRE64_URL}"
Goto +2
StrCpy $0 "${JRE32_URL}"
DetailPrint "Downloading Java Runtime ..."
NSISdl::download /TIMEOUT=30000 $0 $2
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_ICONSTOP "Download failed: $R0"
Abort
DetailPrint "Installing Java Runtime ..."
Push $1
${StdUtils.ExecShellWaitEx} $0 $1 $2 "" "/s"
StrCmp $0 "error" End
StrCmp $0 "no_wait" End
${StdUtils.WaitForProcEx} $0 $1
Pop $1
Delete $2
IfErrors End CheckJavaHome
End:
SectionEnd
; Pass the path by $R0
Function CheckJREVersion
Push $R1
${GetFileVersion} $R0 $R1
${VersionCompare} ${JRE_VERSION} $R1 $R1
StrCmp $R1 "1" 0 +2
SetErrors
Pop $R1
FunctionEnd
......@@ -19,7 +19,6 @@ VIAddVersionKey "LegalCopyright" ""
VIAddVersionKey "FileVersion" "1.0.0"
VIProductVersion "1.0.0.0"
!define JAR "SpeakerSim.jar"
!define PRODUCT_NAME "SpeakerSim"
!define INSTALLSIZE 3000
......@@ -43,8 +42,6 @@ SetCompressor /SOLID zlib
Section
SetOutPath $INSTDIR
File "SpeakerSim.jar"
File "SpeakerSim.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"
......
#!/bin/sh
ant
# Make icon with ImageMagick
#convert -background transparent resources/SpeakerSim.png -define icon:auto-resize=16,24,32,48,64,72,96,128 SpeakerSim.ico
rm -rf ./SpeakerSim.jar
rm -rf ./build/*
# Build using Maven
mvn package
mkdir ./build
cd ./build
# Copy final jar
cp ./target/SpeakerSim-jar-with-dependencies.jar ./SpeakerSim.jar
jar xf ../dist/lib/minimal-json-0.9.5.jar
jar xf ../dist/lib/jfreechart-1.5.0.jar
# Compress jar
#rm -rf ./target/jar
#unzip ./target/SpeakerSim-jar-with-dependencies.jar -d ./target/jar
#cd ./target/jar
#7za a -tzip -mx=9 ../../SpeakerSim.jar
#cd ../../
jar xf ../dist/SpeakerSim.jar
echo "Manifest-Version: 1.0" > ./META-INF/MANIFEST.MF
echo "Main-Class: SpeakerSim.GUI.Main" >> ./META-INF/MANIFEST.MF
jar cfm0 ../SpeakerSim.jar ./META-INF/MANIFEST.MF ./*
#pack200 -rG ../SpeakerSim.jar
cd ../
#convert -density 384 -background transparent graphics/SpeakerSim.svg -define icon:auto-resize -colors 256 SpeakerSim.ico
makensis ./SpeakerSim.nsi
# Windows setup
makensis ./SpeakerSimSetup.nsi
# Windows portable (.zip)
cd ./build
rm -rf ./*
mkdir ./SpeakerSim
cp ../SpeakerSim.jar ./SpeakerSim/
cp ../SpeakerSim.exe ./SpeakerSim/
cp -r ../jre ./SpeakerSim/
7za a -tzip -mx=9 ../SpeakerSim.zip
# Compress JAR
rm -rf ./*
jar xf ../SpeakerSim.jar
rm ../SpeakerSim.jar
7za a -tzip -mx=9 ../SpeakerSim.jar
cd ../
rm -rf ./build
#OPENJDK_WINDOWS_FILE=OpenJDK8U-jre_x86-32_windows_hotspot_8u202b08.zip
#mkdir -r ./build/SpeakerSim
#cd ./build/SpeakerSim
#
#if [ ! -d ./jre ]; then
# if [ ! -f $OPENJDK_WINDOWS_FILE ]; then
# wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/$OPENJDK_WINDOWS_FILE
# fi
#
# unzip $OPENJDK_WINDOWS_FILE
# mv ./jdk8u202-b08-jre ./jre
#fi
#
#cp ../../SpeakerSim.jar ./
#cp ../../SpeakerSim.exe ./
#7za a -tzip -mx=9 ../SpeakerSim.zip
#cd ../../
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="SpeakerSim" default="default" basedir=".">
<description>Builds, tests, and runs the project SpeakerSim.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar: JAR building
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="SpeakerSim-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>
#!/bin/sh
mvn clean
rm -rf ./build
rm -rf ./bin
rm -rf ./dist
......
......@@ -9,15 +9,15 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Layer_1"
data-name="Layer 1"
viewBox="0 0 110 110"
viewBox="0 0 128 128"
version="1.1"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
inkscape:version="0.92.1 r15371"
sodipodi:docname="SpeakerSim.svg"
width="110"
height="110"
inkscape:export-filename="../src/SpeakerSim/GUI/SpeakerSim.png"
inkscape:export-xdpi="223.41818"
inkscape:export-ydpi="223.41818">
width="128"
height="128"
inkscape:export-filename="../resources/SpeakerSim.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata19">
<rdf:RDF>
......@@ -39,15 +39,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1918"
inkscape:window-height="1026"
id="namedview17"
showgrid="false"
inkscape:zoom="2.16"
inkscape:cx="-41.018519"
inkscape:cy="89.832753"
inkscape:zoom="4.3199999"
inkscape:cx="-8.9351905"
inkscape:cy="65.409698"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1"
inkscape:showpageshadow="false"
......@@ -70,44 +70,46 @@
<title
id="title7">Speaker</title>
<rect
style="fill:#995500;fill-opacity:1;stroke-width:0.95742708"
style="fill:#d40c00;fill-opacity:1;stroke-width:1.14309514"
id="rect3354"
width="80"
height="110"
width="98"
height="128"
x="15"
y="0" />
<g
id="g827"
transform="translate(-5)">
<circle
r="20"
cy="25"
cx="60"
id="path3364"
style="fill:#000000" />
<circle
r="6"
cy="24"
cx="60"
id="path3360"
style="fill:#ffffff;stroke-width:1.20000005" />
<circle
r="35"
cy="70"
cx="60"
id="path3362"
style="fill:#000000" />
<circle
r="25"
cy="70"
cx="60"
id="path3366"
style="fill:#ffffff" />
<circle
r="10"
cy="70"
cx="60"
id="path3368"
style="fill:#000000" />
</g>
y="7.1054274e-15" />
<circle
style="fill:#000000;stroke-width:1.14999998"
id="path3364"
cx="64"
cy="27"
r="23" />
<circle
style="fill:#666666;stroke-width:1.5999999"
id="path3360"
cx="64"
cy="27"
r="8" />
<circle
style="fill:#000000;stroke-width:1.14285707"
id="path3362"
cx="64"
cy="80"
r="40" />
<circle
style="fill:#4d4d4d;stroke-width:0.94285727"
id="path3362-2"
cx="64"
cy="80"
r="33" />
<circle
style="fill:#e6e6e6;stroke:none;stroke-width:0.11666666;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path3366"
cx="64"
cy="80"
r="28" />
<circle
style="fill:#1a1a1a;stroke-width:1.19999993"
id="path3368"
cx="64"
cy="80"
r="12" />
</svg>
Manifest-Version: 1.0
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.5.0:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath SpeakerSim.GUI.Main</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.5.0:exec</goal>
</goals>
<properties>
<exec.args>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath SpeakerSim.GUI.Main</exec.args>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
</properties>
</action>
</actions>
This diff is collapsed.
build.xml.data.CRC32=9ddef8c6
build.xml.script.CRC32=0ee53e6e
build.xml.stylesheet.CRC32=8064a381@1.79.1.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=9ddef8c6
nbproject/build-impl.xml.script.CRC32=228aa7a9
nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48
<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}Copyright (C) ${date?date?string("yyyy")} ${project.organization!user}
${licensePrefix?replace(" +$", "", "r")}
${licensePrefix}This program is free software: you can redistribute it and/or modify
${licensePrefix}it under the terms of the GNU General Public License as published by
${licensePrefix}the Free Software Foundation, version 3 of the License.
${licensePrefix?replace(" +$", "", "r")}
${licensePrefix}This program is distributed in the hope that it will be useful,
${licensePrefix}but WITHOUT ANY WARRANTY; without even the implied warranty of
${licensePrefix}MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
${licensePrefix}GNU General Public License for more details.
${licensePrefix?replace(" +$", "", "r")}
${licensePrefix}You should have received a copy of the GNU General Public License
${licensePrefix}along with this program. If not, see <http://www.gnu.org/licenses/>.
<#if licenseLast??>
${licenseLast}
</#if>
\ No newline at end of file
annotation.processing.enabled=false
annotation.processing.enabled.in.editor=false
annotation.processing.processors.list=
annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
application.title=SpeakerSim
application.vendor=Gregor Pintar
auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# Files in build.classes.dir which should be excluded from distribution jar
dist.archive.excludes=
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/SpeakerSim.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.jfreechart-1.5.0.jar=lib/jfreechart-1.5.0.jar
file.reference.minimal-json-0.9.5.jar=lib/minimal-json-0.9.5.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=false
jar.index=${jnlp.enabled}
javac.classpath=\
${file.reference.minimal-json-0.9.5.jar}:\
${file.reference.jfreechart-1.5.0.jar}
# Space-separated list of extra javac options
javac.compilerargs=-Xlint:unchecked -bootclasspath lib/rt.jar
javac.deprecation=false
javac.external.vm=true
javac.processorpath=\
${javac.classpath}
javac.source=1.7
javac.target=1.7
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}
javac.test.processorpath=\
${javac.test.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=true
javadoc.nonavbar=true
javadoc.notree=true
javadoc.private=false
javadoc.splitindex=false
javadoc.use=false
javadoc.version=false
javadoc.windowtitle=
jnlp.codebase.type=no.codebase
jnlp.descriptor=application
jnlp.enabled=false
jnlp.mixed.code=default
jnlp.offline-allowed=false
jnlp.signed=false
jnlp.signing=
jnlp.signing.alias=
jnlp.signing.keystore=
main.class=SpeakerSim.GUI.Main
# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
manifest.custom.application.library.allowable.codebase=
# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
manifest.custom.caller.allowable.codebase=
# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
manifest.custom.codebase=
# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
manifest.custom.permissions=
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false
platform.active=default_platform
project.license=gpl30
project.licensePath=./nbproject/licenseheader.txt
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project.
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-prop.name=value:
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1"/>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>SpeakerSim</name>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots/>
</data>
</configuration>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpeakerSim</groupId>
<artifactId>SpeakerSim</artifactId>
<version>2019-03-20</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.eclipsesource.minimal-json</groupId>
<artifactId>minimal-json</artifactId>
<version>0.9.5</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>resources</directory>
<filtering>true</filtering>
</resource>
</resources>