Skip to content

Commit 68ecfd1

Browse files
committed
feat: MeCab 설치 의존성을 참조하도록 수정
1 parent 460e2a8 commit 68ecfd1

7 files changed

Lines changed: 20 additions & 42 deletions

File tree

.github/workflows/build_and_publish.yaml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,6 @@ jobs:
4848
with:
4949
name: mecab-library-linux
5050
path: java/org/chasen/mecab/native/linux/libMeCabWrapper.so
51-
- name: Store MeCab library as artifact
52-
uses: actions/upload-artifact@v1
53-
with:
54-
name: mecab-library-linux-origin
55-
path: /usr/local/lib/libmecab.so
5651

5752
build-library-macos:
5853
name: MeCab library build - macOS
@@ -79,11 +74,6 @@ jobs:
7974
with:
8075
name: mecab-library-macos
8176
path: java/org/chasen/mecab/native/macos/libMeCabWrapper.dylib
82-
- name: Store MeCab library as artifact
83-
uses: actions/upload-artifact@v1
84-
with:
85-
name: mecab-library-macos-origin
86-
path: /usr/local/lib/libmecab.dylib
8777

8878
build-and-publish:
8979
name: Build and Publish
@@ -108,16 +98,6 @@ jobs:
10898
with:
10999
name: mecab-library-macos
110100
path: java/org/chasen/mecab/native/macos/
111-
- name: Download original library - Linux
112-
uses: actions/download-artifact@v1
113-
with:
114-
name: mecab-library-linux-origin
115-
path: java/org/chasen/mecab/native/linux/
116-
- name: Download original library - macOS
117-
uses: actions/download-artifact@v1
118-
with:
119-
name: mecab-library-macos-origin
120-
path: java/org/chasen/mecab/native/macos/
121101
- name: Build JAR
122102
working-directory: java
123103
env:

.gitignore

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
.DS_Store
1+
config.h
2+
config.log
3+
config.status
4+
libtool
5+
Makefile
6+
mecab-config
7+
mecab.iss
8+
mecabrc
9+
perl
10+
stamp-h1
11+
.DS_Store
12+
.vscode/

java/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
*.dylib
22
*.so
3+
*.a
34
MeCab_wrap.*
45
MeCab.jar
56
org/

java/MeCab.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
import java.io.FileInputStream;
1111
import java.io.FileOutputStream;
1212
import java.io.InputStream;
13+
import java.lang.UnsatisfiedLinkError;
1314

1415
public class MeCab implements MeCabConstants {
15-
public static synchronized void initialize() {
16+
public static synchronized void initialize() throws UnsatisfiedLinkError {
1617
System.out.println("Loading MeCab library...");
1718

1819
String nativeLibPath = "/org/chasen/mecab/native";
@@ -25,25 +26,13 @@ public static synchronized void initialize() {
2526
String nativeLibName = System.mapLibraryName("MeCabWrapper");
2627
String nativeLibFilePath = nativeLibPath + "/" + nativeLibName;
2728
if (MeCab.class.getResource(nativeLibFilePath) == null) {
28-
System.out.println("Error loading native library: " + nativeLibPath + "/" + nativeLibName);
29-
System.exit(1); // TODO: Exception
30-
}
31-
32-
String originalLibName = System.mapLibraryName("mecab");
33-
String originalLibFilePath = nativeLibPath + "/" + originalLibName;
34-
if (MeCab.class.getResource(originalLibFilePath) == null) {
35-
System.out.println("Error loading original library: " + nativeLibPath + "/" + nativeLibName);
36-
System.exit(1);
29+
throw new UnsatisfiedLinkError("Error finding native library: " + nativeLibFilePath);
3730
}
3831

3932
// Temporary library folder
4033
String tempFolder = "/tmp";
4134
File extractedLibFile = new File(tempFolder, nativeLibName);
42-
File extractedOriginalLibFile = new File(tempFolder, originalLibName);
43-
4435
extractLibrary(nativeLibFilePath, extractedLibFile);
45-
extractLibrary(originalLibFilePath, extractedOriginalLibFile);
46-
4736
System.load(extractedLibFile.getAbsolutePath());
4837
}
4938

@@ -61,8 +50,7 @@ private static void extractLibrary(String resourcePath, File destination) {
6150
writer.close();
6251
reader.close();
6352
} catch (Exception e) {
64-
System.err.println(e);
65-
System.exit(1);
53+
throw new UnsatisfiedLinkError("Error loading native library: " + resourcePath);
6654
}
6755
}
6856
}

java/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ publishing {
77
maven(MavenPublication) {
88
groupId = 'com.scatterlab.mecab-ko-java'
99
artifactId = 'mecab-ko-java'
10-
version = '1.0.2'
10+
version = '1.0.3'
1111

1212
artifact 'MeCab.jar'
1313
}

java/run-linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ PACKAGE=org/chasen/mecab
66
build_lib_linux() {
77
mkdir -p $PACKAGE/native/linux
88
g++ -O1 -c -fpic MeCab_wrap.cxx $(mecab-config --cflags) -I$INCLUDE -I$INCLUDE/linux
9-
g++ -shared MeCab_wrap.o -o $PACKAGE/native/linux/libMeCabWrapper.so -Wl,-rpath,/tmp $(mecab-config --libs)
9+
g++ -shared MeCab_wrap.o -o $PACKAGE/native/linux/libMeCabWrapper.so $(mecab-config --libs)
1010
}
1111

1212
build_lib_linux

java/run-macos.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ PACKAGE=org/chasen/mecab
66
build_lib_macos() {
77
mkdir -p $PACKAGE/native/macos
88
g++ -O1 -c -fpic MeCab_wrap.cxx $(mecab-config --cflags) -I$INCLUDE -I$INCLUDE/darwin
9-
g++ -dynamiclib MeCab_wrap.o -o $PACKAGE/native/macos/libMeCabWrapper.dylib -Wl,-rpath,/tmp $(mecab-config --libs)
10-
install_name_tool -id "@rpath/libMeCabWrapper.dylib" $PACKAGE/native/macos/libMeCabWrapper.dylib
11-
install_name_tool -change /usr/local/lib/libmecab.2.dylib @rpath/libmecab.dylib $PACKAGE/native/macos/libMeCabWrapper.dylib
9+
g++ -dynamiclib MeCab_wrap.o -o $PACKAGE/native/macos/libMeCabWrapper.dylib $(mecab-config --libs)
1210
}
1311

1412
build_lib_macos

0 commit comments

Comments
 (0)