Создайте так вместо dylib используя плагин nar maven

У меня теперь есть пльява на Mac. pljava использует maven и плагин maven nar для сборки. Эта сборка maven-нар в настоящее время создает dylib вместо.so. Похоже, что postgres вместо этого хочет.so. Это результат включения трассировки postgres:

2014-09-26 10:12:59 EDT STATEMENT:  CREATE FUNCTION sqlj.java_call_handler() RETURNS language_handler AS 'pljava' LANGUAGE C
2014-09-26 10:12:59 EDT DEBUG:  bind <unnamed> to <unnamed>
2014-09-26 10:12:59 EDT LOG:  execute <unnamed>: CREATE FUNCTION sqlj.java_call_handler() RETURNS language_handler AS 'pljava' LANGUAGE C
2014-09-26 10:12:59 EDT DEBUG:  ProcessUtility
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/lib/postgresql/pljava"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/lib/pljava"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/share/pljava/pljava"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/pljava"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/server/pljava"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/lib/postgresql/pljava.so"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/lib/pljava.so"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/PostgreSQL/9.1/share/pljava/pljava.so"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/pljava.so"
2014-09-26 10:12:59 EDT DEBUG:  find_in_dynamic_libpath: trying "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/server/pljava.so"
2014-09-26 10:12:59 EDT ERROR:  could not access file "pljava": No such file or directory

Итак, мой вопрос - как я могу заставить maven nar выводить файл.so вместо.dylib? Если я использую тип "shared", создается dylib, если я использую тип "plugin", создается.bundle, и если я использую тип "static", ссылка завершается ошибкой.

1 ответ

Решение

Я решил свою проблему. Использование типа "плагин" создает правильный тип файла. Ответ Майлза на этот вопрос помог мне понять это:

Каковы различия между.so и.dylib на osx?

Mac OS рекомендует расширение.bundle для загружаемых модулей, но портированные приложения (такие как PostgreSQL) по-прежнему хотят использовать.so. После того, как я изменил имя файла на pljava.so, PostgreSQL смог успешно загрузить модуль.

Другие вопросы по тегам