2017-07-19 66 views
0

我試圖在客戶端的HTML頁面上顯示我的pom.xml文件的屬性值(以便管理員可以在管理頁面),但我找不到辦法。在HTML頁面上顯示POM文件屬性的值

我試圖用PHP和JS等,但沒有什麼工作......這是我最後一次嘗試:

function populatePre(url) { 
 
\t var xhr = new XMLHttpRequest(); 
 
\t xhr.onload = function() { 
 
\t \t document.getElementById('contents').textContent = this.responseText; 
 
\t }; 
 
\t xhr.open('GET', url); 
 
\t xhr.send(); 
 
}
<p id="testButton"><button type="button" onclick=populatePre('C:\path\to\my\pom.xml')>Click Me!</button></p> 
 
\t <pre id="contents"></pre>

基本上,HTML網頁是一個文件夾,中pom.xml文件位於另一個文件(../../path/to/pom.xml)中。我不知道如何訪問它,也不知道如何讀取它...

+0

HTML頁面是maven項目的一部分嗎? – VitalyZ

+0

它是maven項目的一部分 – Papple

回答

0

我找到了一個方法,然後將值發送給視圖。以下是代碼(簡化版):

public function index(Request $request) 
{ 
    $pom = '../../path/to/file/pom.xml'; 

    $myFile = fopen($pom, "r") or die("Unable to open file!"); 
    $fileContents = fread($myFile, filesize($pom)); 
    $tempString = substr($fileContents, strpos($fileContents, 'valueToFind') + 49, 50); 
    $foundValue = substr($tempString, 0, strpos($tempString, '<')); fclose($myFile); 

    return view('administration.index', ['foundValue' => $foundValue]); 
} 
0

問題是這裏:C:\path\to\my\pom.xml,這是一個您的計算機的路徑,您需要使用服務器。基本上,你的網址必須是localhost:8080/path/to/my/pom.xmlyour-site.com/path/to/my/pom.xml。因此,如果您已經使用PHP,請使用Apache服務器。

+0

它在我的電腦上,因爲服務器是本地的(現在) – Papple

+0

我不確定我能做到這一點,因爲我的文檔根目錄設置爲一個文件夾,並且爲了到達pom.xml文件我需要去其父文件夾。 – Papple

+0

看看您的瀏覽器中的控制檯,我認爲它顯示'跨源請求被阻止'。如果它只是一個根文件夾問題,您可以輕鬆更改它。 – Cylexx

0

可以將HTML頁面描述爲pom.xml中的過濾資源。像

<resource> 
    <directory>path/to/html_directory</directory> 
    <includes> 
     <include>your.html</include> 
    </includes> 
    <filtering>true</filtering> 
</resource> 

東西然後把佔位符成HTML爲${yourPropertyName},它會用在構建過程的屬性值來代替。詳情請參閱Maven Resources Plugin filtering option description。這會解決你的問題嗎?